From 6e2e67ab55c75f4655397588c0dcc64f50d22f92 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 13 Jan 2020 14:41:17 -0800 Subject: Remove WixActionRowCollection and duplicate actions.xml --- .../Bind/CopyTransformDataCommand.cs | 79 ++--- .../Bind/SequenceActionsCommand.cs | 13 +- .../Data/actions.xml | 76 ----- .../Decompile/Decompiler.cs | 31 +- .../Rows/WixActionRowCollection.cs | 329 --------------------- .../WindowsInstallerStandardInternal.cs | 30 +- .../WixToolset.Core.WindowsInstaller.csproj | 1 - 7 files changed, 63 insertions(+), 496 deletions(-) delete mode 100644 src/WixToolset.Core.WindowsInstaller/Data/actions.xml delete mode 100644 src/WixToolset.Core.WindowsInstaller/Rows/WixActionRowCollection.cs (limited to 'src') diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs index 1651f9d8..107f3208 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CopyTransformDataCommand.cs @@ -433,59 +433,63 @@ namespace WixToolset.Core.WindowsInstaller.Bind /// The file row that contains information about the patched file. private void AddPatchFilesActionToSequenceTable(SequenceTable table, WindowsInstallerData mainTransform, WindowsInstallerData pairedTransform, Row mainFileRow) { + var tableName = table.ToString(); + // Find/add PatchFiles action (also determine sequence for it). // Search mainTransform first, then pairedTransform (pairedTransform overrides). - bool hasPatchFilesAction = false; - int seqInstallFiles = 0; - int seqDuplicateFiles = 0; - string tableName = table.ToString(); + var hasPatchFilesAction = false; + var installFilesSequence = 0; + var duplicateFilesSequence = 0; TestSequenceTableForPatchFilesAction( mainTransform.Tables[tableName], ref hasPatchFilesAction, - ref seqInstallFiles, - ref seqDuplicateFiles); + ref installFilesSequence, + ref duplicateFilesSequence); TestSequenceTableForPatchFilesAction( pairedTransform.Tables[tableName], ref hasPatchFilesAction, - ref seqInstallFiles, - ref seqDuplicateFiles); + ref installFilesSequence, + ref duplicateFilesSequence); if (!hasPatchFilesAction) { - Table iesTable = pairedTransform.EnsureTable(this.TableDefinitions[tableName]); - if (0 == iesTable.Rows.Count) - { - iesTable.Operation = TableOperation.Add; - } + WindowsInstallerStandard.TryGetStandardAction(tableName, "PatchFiles", out var patchFilesActionTuple); + + var sequence = patchFilesActionTuple.Sequence; - Row patchAction = iesTable.CreateRow(null); - WixActionRow wixPatchAction = WindowsInstallerStandardInternal.GetStandardActionRows()[table, "PatchFiles"]; - int sequence = wixPatchAction.Sequence; // Test for default sequence value's appropriateness - if (seqInstallFiles >= sequence || (0 != seqDuplicateFiles && seqDuplicateFiles <= sequence)) + if (installFilesSequence >= sequence || (0 != duplicateFilesSequence && duplicateFilesSequence <= sequence)) { - if (0 != seqDuplicateFiles) + if (0 != duplicateFilesSequence) { - if (seqDuplicateFiles < seqInstallFiles) + if (duplicateFilesSequence < installFilesSequence) { - throw new WixException(ErrorMessages.InsertInvalidSequenceActionOrder(mainFileRow.SourceLineNumbers, iesTable.Name, "InstallFiles", "DuplicateFiles", wixPatchAction.Action)); + throw new WixException(ErrorMessages.InsertInvalidSequenceActionOrder(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionTuple.Action)); } else { - sequence = (seqDuplicateFiles + seqInstallFiles) / 2; - if (seqInstallFiles == sequence || seqDuplicateFiles == sequence) + sequence = (duplicateFilesSequence + installFilesSequence) / 2; + if (installFilesSequence == sequence || duplicateFilesSequence == sequence) { - throw new WixException(ErrorMessages.InsertSequenceNoSpace(mainFileRow.SourceLineNumbers, iesTable.Name, "InstallFiles", "DuplicateFiles", wixPatchAction.Action)); + throw new WixException(ErrorMessages.InsertSequenceNoSpace(mainFileRow.SourceLineNumbers, tableName, "InstallFiles", "DuplicateFiles", patchFilesActionTuple.Action)); } } } else { - sequence = seqInstallFiles + 1; + sequence = installFilesSequence + 1; } } - patchAction[0] = wixPatchAction.Action; - patchAction[1] = wixPatchAction.Condition; + + var sequenceTable = pairedTransform.EnsureTable(this.TableDefinitions[tableName]); + if (0 == sequenceTable.Rows.Count) + { + sequenceTable.Operation = TableOperation.Add; + } + + var patchAction = sequenceTable.CreateRow(null); + patchAction[0] = patchFilesActionTuple.Action; + patchAction[1] = patchFilesActionTuple.Condition; patchAction[2] = sequence; patchAction.Operation = RowOperation.Add; } @@ -494,27 +498,28 @@ namespace WixToolset.Core.WindowsInstaller.Bind /// /// Tests sequence table for PatchFiles and associated actions /// - /// The table to test. + /// The table to test. /// Set to true if PatchFiles action is found. Left unchanged otherwise. - /// Set to sequence value of InstallFiles action if found. Left unchanged otherwise. - /// Set to sequence value of DuplicateFiles action if found. Left unchanged otherwise. - private static void TestSequenceTableForPatchFilesAction(Table iesTable, ref bool hasPatchFilesAction, ref int seqInstallFiles, ref int seqDuplicateFiles) + /// Set to sequence value of InstallFiles action if found. Left unchanged otherwise. + /// Set to sequence value of DuplicateFiles action if found. Left unchanged otherwise. + private static void TestSequenceTableForPatchFilesAction(Table sequenceTable, ref bool hasPatchFilesAction, ref int installFilesSequence, ref int duplicateFilesSequence) { - if (null != iesTable) + if (null != sequenceTable) { - foreach (Row iesRow in iesTable.Rows) + foreach (var row in sequenceTable.Rows) { - if (String.Equals("PatchFiles", (string)iesRow[0], StringComparison.Ordinal)) + var actionName = row.FieldAsString(0); + if (String.Equals("PatchFiles", actionName, StringComparison.Ordinal)) { hasPatchFilesAction = true; } - if (String.Equals("InstallFiles", (string)iesRow[0], StringComparison.Ordinal)) + else if (String.Equals("InstallFiles", actionName, StringComparison.Ordinal)) { - seqInstallFiles = (int)iesRow.Fields[2].Data; + installFilesSequence = row.FieldAsInteger(2); } - if (String.Equals("DuplicateFiles", (string)iesRow[0], StringComparison.Ordinal)) + else if (String.Equals("DuplicateFiles", actionName, StringComparison.Ordinal)) { - seqDuplicateFiles = (int)iesRow.Fields[2].Data; + duplicateFilesSequence = row.FieldAsInteger(2); } } } diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs index 23a5fcba..e9b0d612 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs @@ -18,16 +18,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind this.Section = section; this.RelativeActionsForActions = new Dictionary(); - - this.StandardActionsById = WindowsInstallerStandard.StandardActions().ToDictionary(a => a.Id.Id); } private IntermediateSection Section { get; } private Dictionary RelativeActionsForActions { get; } - private Dictionary StandardActionsById { get; } - public IMessaging Messaging { private get; set; } /// @@ -63,7 +59,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind // Unsequenced action (allowed for certain standard actions). if (null == actionTuple.Before && null == actionTuple.After && !actionTuple.Sequence.HasValue) { - if (this.StandardActionsById.TryGetValue(actionTuple.Id.Id, out var standardAction)) + if (WindowsInstallerStandard.TryGetStandardAction(actionTuple.Id.Id, out var standardAction)) { // Populate the sequence from the standard action actionTuple.Sequence = standardAction.Sequence; @@ -154,7 +150,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind // on the presence of a particular table. if (requiredActionTuples.ContainsKey("InstallExecuteSequence/DuplicateFiles") && !requiredActionTuples.ContainsKey("InstallExecuteSequence/InstallFiles")) { - var standardAction = this.StandardActionsById["InstallExecuteSequence/InstallFiles"]; + WindowsInstallerStandard.TryGetStandardAction("InstallExecuteSequence/InstallFiles", out var standardAction); requiredActionTuples.Add(standardAction.Id.Id, standardAction); } @@ -201,8 +197,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind foreach (var actionId in requiredActionIds) { - var standardAction = this.StandardActionsById[actionId]; - + WindowsInstallerStandard.TryGetStandardAction(actionId, out var standardAction); overridableActionTuples.Add(standardAction.Id.Id, standardAction); } @@ -597,7 +592,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind if (!requiredActionTuples.TryGetValue(parentActionKey, out var parentActionTuple)) { // If the missing parent action is a standard action (with a suggested sequence number), add it. - if (this.StandardActionsById.TryGetValue(parentActionKey, out parentActionTuple)) + if (WindowsInstallerStandard.TryGetStandardAction(parentActionKey, out parentActionTuple)) { // Create a clone to avoid modifying the static copy of the object. // TODO: consider this: parentActionTuple = parentActionTuple.Clone(); diff --git a/src/WixToolset.Core.WindowsInstaller/Data/actions.xml b/src/WixToolset.Core.WindowsInstaller/Data/actions.xml deleted file mode 100644 index f65b792d..00000000 --- a/src/WixToolset.Core.WindowsInstaller/Data/actions.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs b/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs index b1222d3d..aa8921ed 100644 --- a/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs +++ b/src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs @@ -13,7 +13,6 @@ namespace WixToolset.Core.WindowsInstaller using System.Text.RegularExpressions; using System.Xml.Linq; using WixToolset.Core; - using WixToolset.Core.WindowsInstaller.Rows; using WixToolset.Data; using WixToolset.Data.Tuples; using WixToolset.Data.WindowsInstaller; @@ -104,7 +103,7 @@ namespace WixToolset.Core.WindowsInstaller { if (null == output) { - throw new ArgumentNullException("output"); + throw new ArgumentNullException(nameof(output)); } this.OutputType = output.Type; @@ -1534,9 +1533,7 @@ namespace WixToolset.Core.WindowsInstaller foreach (Wix.ISchemaElement element in component.Children) { - var file = element as Wix.File; - - if (null != file && Wix.YesNoType.yes == file.KeyPath) + if (element is Wix.File file && Wix.YesNoType.yes == file.KeyPath) { file.AddChild(typeLib); } @@ -2511,10 +2508,10 @@ namespace WixToolset.Core.WindowsInstaller if (null != table) { - var actionRows = new ArrayList(); + var actionRows = new List(); var needAbsoluteScheduling = this.SuppressRelativeActionSequencing; - var nonSequencedActionRows = new WixActionRowCollection(); - var suppressedRelativeActionRows = new WixActionRowCollection(); + var nonSequencedActionRows = new Dictionary(); + var suppressedRelativeActionRows = new Dictionary(); // create a sorted array of actions in this table foreach (var row in table.Rows) @@ -2538,7 +2535,7 @@ namespace WixToolset.Core.WindowsInstaller for (var i = 0; i < actionRows.Count && !needAbsoluteScheduling; i++) { - var actionRow = (WixActionRow)actionRows[i]; + var actionRow = actionRows[i]; this.StandardActions.TryGetValue(actionRow.GetPrimaryKey(), out var standardActionRow); // create actions for custom actions, dialogs, AppSearch when its moved, and standard actions with non-standard conditions @@ -2550,13 +2547,13 @@ namespace WixToolset.Core.WindowsInstaller // find the previous action row if there is one if (0 <= i - 1) { - previousActionRow = (WixActionRow)actionRows[i - 1]; + previousActionRow = actionRows[i - 1]; } // find the next action row if there is one if (actionRows.Count > i + 1) { - nextActionRow = (WixActionRow)actionRows[i + 1]; + nextActionRow = actionRows[i + 1]; } // the logic for setting the before or after attribute for an action: @@ -2594,7 +2591,7 @@ namespace WixToolset.Core.WindowsInstaller } else if (null != standardActionRow && actionRow.Condition != standardActionRow.Condition) // standard actions get their standard sequence numbers { - nonSequencedActionRows.Add(actionRow); + nonSequencedActionRows.Add(actionRow.GetPrimaryKey(), actionRow); } else if (0 < actionRow.Sequence) { @@ -2603,25 +2600,27 @@ namespace WixToolset.Core.WindowsInstaller } else { - suppressedRelativeActionRows.Add(actionRow); + suppressedRelativeActionRows.Add(actionRow.GetPrimaryKey(), actionRow); } } // create the actions now that we know if they must be absolutely or relatively scheduled - foreach (WixActionRow actionRow in actionRows) + foreach (var actionRow in actionRows) { + var key = actionRow.GetPrimaryKey(); + if (needAbsoluteScheduling) { // remove any before/after information to ensure this is absolutely sequenced actionRow.Before = null; actionRow.After = null; } - else if (nonSequencedActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) + else if (nonSequencedActionRows.ContainsKey(key)) { // clear the sequence attribute to ensure this action is scheduled without a sequence number (or before/after) actionRow.Sequence = 0; } - else if (suppressedRelativeActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) + else if (suppressedRelativeActionRows.ContainsKey(key)) { // skip the suppressed relatively scheduled action rows continue; diff --git a/src/WixToolset.Core.WindowsInstaller/Rows/WixActionRowCollection.cs b/src/WixToolset.Core.WindowsInstaller/Rows/WixActionRowCollection.cs deleted file mode 100644 index 5abf02ce..00000000 --- a/src/WixToolset.Core.WindowsInstaller/Rows/WixActionRowCollection.cs +++ /dev/null @@ -1,329 +0,0 @@ -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. - -namespace WixToolset.Core.WindowsInstaller.Rows -{ - using System; - using System.Collections; - using System.Diagnostics; - using System.Globalization; - using System.Xml; - using WixToolset.Data.Tuples; - using WixToolset.Data.WindowsInstaller.Rows; - - /// - /// A collection of action rows sorted by their sequence table and action name. - /// - // TODO: Remove this - internal sealed class WixActionRowCollection : ICollection - { - private readonly 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 = ParseActions(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); - } - - /// - /// Parses ActionRows from the Xml reader. - /// - /// Xml reader that contains serialized ActionRows. - /// The parsed ActionRows. - internal static WixActionRow[] ParseActions(XmlReader reader) - { - Debug.Assert("action" == reader.LocalName); - - string id = null; - string condition = null; - bool empty = reader.IsEmptyElement; - int sequence = Int32.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.AdvertiseExecuteSequence; - ++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 (Int32.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 (var i = 0; i < sequenceCount; i++) - { - //WixActionRow actionRow = new WixActionRow(sequenceTables[i], id, condition, sequence); - //actionRows[i] = actionRow; - throw new NotImplementedException(); - } - - return actionRows; - } - } -} diff --git a/src/WixToolset.Core.WindowsInstaller/WindowsInstallerStandardInternal.cs b/src/WixToolset.Core.WindowsInstaller/WindowsInstallerStandardInternal.cs index 759bda14..33f1ba04 100644 --- a/src/WixToolset.Core.WindowsInstaller/WindowsInstallerStandardInternal.cs +++ b/src/WixToolset.Core.WindowsInstaller/WindowsInstallerStandardInternal.cs @@ -2,10 +2,8 @@ namespace WixToolset.Core.WindowsInstaller { - using System; using System.Reflection; using System.Xml; - using WixToolset.Core.WindowsInstaller.Rows; using WixToolset.Data.WindowsInstaller; /// @@ -16,9 +14,6 @@ namespace WixToolset.Core.WindowsInstaller private static readonly object lockObject = new object(); private static TableDefinitionCollection tableDefinitions; -#if REVISIT_FOR_PATCHING - private static WixActionRowCollection standardActions; -#endif /// /// Gets the table definitions stored in this assembly. @@ -26,6 +21,8 @@ namespace WixToolset.Core.WindowsInstaller /// Table definition collection for tables stored in this assembly. public static TableDefinitionCollection GetTableDefinitions() { + // TODO: make the data static data structures instead of parsing an XML file and consider + // moving it all to WixToolset.Data.WindowsInstallerStandard class. lock (lockObject) { if (null == WindowsInstallerStandardInternal.tableDefinitions) @@ -39,28 +36,5 @@ namespace WixToolset.Core.WindowsInstaller return WindowsInstallerStandardInternal.tableDefinitions; } - - /// - /// Gets the standard actions stored in this assembly. - /// - /// Collection of standard actions in this assembly. - public static WixActionRowCollection GetStandardActionRows() - { -#if REVISIT_FOR_PATCHING - lock (lockObject) - { - if (null == WindowsInstallerStandardInternal.standardActions) - { - using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Core.WindowsInstaller.Data.actions.xml"))) - { - WindowsInstallerStandardInternal.standardActions = WixActionRowCollection.Load(reader); - } - } - } - - return WindowsInstallerStandardInternal.standardActions; -#endif - throw new NotImplementedException(); - } } } diff --git a/src/WixToolset.Core.WindowsInstaller/WixToolset.Core.WindowsInstaller.csproj b/src/WixToolset.Core.WindowsInstaller/WixToolset.Core.WindowsInstaller.csproj index f1351aba..07007525 100644 --- a/src/WixToolset.Core.WindowsInstaller/WixToolset.Core.WindowsInstaller.csproj +++ b/src/WixToolset.Core.WindowsInstaller/WixToolset.Core.WindowsInstaller.csproj @@ -11,7 +11,6 @@ - -- cgit v1.2.3-55-g6feb