@joebigelow / wix-1 / commits / 94e722ba

Update heat to use StandardDirectory element

Fixes 6631

Rob Mensching committed Aug 16, 2022 at 18:11 UTC 94e722baab4e848a615812a45fecc8322335d1f0
16 files changed +4211 -3996
src/testresultfilelist.txt
+1
@@ -15,6 +15,7 @@ build/logs/TestResults/WixToolsetTest.Core.Burn.trx
15 build/logs/TestResults/WixToolsetTest.Core.Native.trx
16 build/logs/TestResults/WixToolsetTest.CoreIntegration.trx
17 build/logs/TestResults/WixToolsetTest.Dnc.HostGenerator.trx
18 +build/logs/TestResults/WixToolsetTest.Heat.trx
19 build/logs/TestResults/WixToolsetTest.HeatTasks.trx
20 build/logs/TestResults/WixToolsetTest.ManagedHost.trx
21 build/logs/TestResults/WixToolsetTest.Mba.Core.trx
src/tools/heat/DirectoryHarvester.cs
+4 -4
@@ -5,6 +5,7 @@ namespace WixToolset.Harvesters
5 using System;
6 using System.IO;
7 using WixToolset.Data;
8 + using WixToolset.Data.WindowsInstaller;
9 using WixToolset.Harvesters.Data;
10 using WixToolset.Harvesters.Extensibility;
11 using Wix = WixToolset.Harvesters.Serialize;
@@ -14,7 +15,7 @@ namespace WixToolset.Harvesters
15 /// </summary>
16 public sealed class DirectoryHarvester : BaseHarvesterExtension
17 {
17 - private FileHarvester fileHarvester;
18 + private readonly FileHarvester fileHarvester;
19
20 private const string ComponentPrefix = "cmp";
21 private const string DirectoryPrefix = "dir";
@@ -84,8 +85,7 @@ namespace WixToolset.Harvesters
85 {
86 Wix.Directory directory = (Wix.Directory)harvestParent;
87
87 - Wix.DirectoryRef directoryRef = new Wix.DirectoryRef();
88 - directoryRef.Id = this.RootedDirectoryRef;
88 + var directoryRef = DirectoryHelper.CreateDirectoryReference(this.RootedDirectoryRef);
89
90 if (this.SuppressRootDirectory)
91 {
@@ -208,7 +208,7 @@ namespace WixToolset.Harvesters
208 private int HarvestDirectory(string path, string relativePath, Wix.IParentElement harvestParent, GenerateType generateType)
209 {
210 int fileCount = 0;
211 - Wix.Directory directory = generateType != GenerateType.PayloadGroup ? (Wix.Directory)harvestParent : null;
211 + Wix.DirectoryBase directory = generateType != GenerateType.PayloadGroup ? (Wix.DirectoryBase)harvestParent : null;
212
213 // harvest the child directories
214 foreach (string childDirectoryPath in Directory.GetDirectories(path))
src/tools/heat/DirectoryHelper.cs new
+42
@@ -0,0 +1,42 @@
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 +
3 +namespace WixToolset.Harvesters
4 +{
5 + using WixToolset.Data.WindowsInstaller;
6 + using Wix = WixToolset.Harvesters.Serialize;
7 +
8 + internal static class DirectoryHelper
9 + {
10 + public static Wix.DirectoryBase CreateDirectory(string id)
11 + {
12 + if (WindowsInstallerStandard.IsStandardDirectory(id))
13 + {
14 + return new Wix.StandardDirectory()
15 + {
16 + Id = id
17 + };
18 + }
19 +
20 + return new Wix.Directory()
21 + {
22 + Id = id
23 + };
24 + }
25 +
26 + public static Wix.DirectoryBase CreateDirectoryReference(string id)
27 + {
28 + if (WindowsInstallerStandard.IsStandardDirectory(id))
29 + {
30 + return new Wix.StandardDirectory()
31 + {
32 + Id = id
33 + };
34 + }
35 +
36 + return new Wix.DirectoryRef()
37 + {
38 + Id = id
39 + };
40 + }
41 + }
42 +}
src/tools/heat/FileHarvester.cs
+1 -2
@@ -80,8 +80,7 @@ namespace WixToolset.Harvesters
80
81 string fullPath = Path.GetFullPath(argument);
82
83 - Wix.DirectoryRef directoryRef = new Wix.DirectoryRef();
84 - directoryRef.Id = this.rootedDirectoryRef;
83 + var directoryRef = DirectoryHelper.CreateDirectoryReference(this.rootedDirectoryRef);
84
85 Wix.File file = this.HarvestFile(fullPath);
86
src/tools/heat/HelpCommand.cs
+1 -1
@@ -97,7 +97,7 @@ namespace WixToolset.Harvesters
97 Console.WriteLine(HelpMessageOptionFormat, "-? | -help", "this help information");
98 Console.WriteLine("For more information see: https://wixtoolset.org/");
99
100 - return 0;
100 + return 1;
101 }
102 }
103 }
src/tools/heat/PerformanceCategoryHarvester.cs
+1 -3
@@ -35,9 +35,7 @@ namespace WixToolset.Harvesters
35 component.KeyPath = Wix.YesNoType.yes;
36 component.AddChild(perf);
37
38 - Wix.Directory directory = new Wix.Directory();
39 - directory.Id = "TARGETDIR";
40 - //directory.Name = directory.Id;
38 + var directory = DirectoryHelper.CreateDirectory("TARGETDIR");
39 directory.AddChild(component);
40
41 Wix.Fragment fragment = new Wix.Fragment();
src/tools/heat/RegFileHarvester.cs
+2 -3
@@ -63,8 +63,7 @@ namespace WixToolset.Harvesters
63 throw new WixException(HarvesterErrors.FileNotFound(path));
64 }
65
66 - Wix.Directory directory = new Wix.Directory();
67 - directory.Id = "TARGETDIR";
66 + var directory = DirectoryHelper.CreateDirectory("TARGETDIR");
67
68 // Use absolute paths
69 path = Path.GetFullPath(path);
@@ -119,7 +118,7 @@ namespace WixToolset.Harvesters
118 /// <param name="directory">A WiX directory reference.</param>
119 /// <param name="root">The root key.</param>
120 /// <param name="line">The current line.</param>
122 - private void ConvertKey(StreamReader sr, ref Wix.Directory directory, Wix.RegistryRootType root, string line)
121 + private void ConvertKey(StreamReader sr, ref Wix.DirectoryBase directory, Wix.RegistryRootType root, string line)
122 {
123 Wix.Component component = new Wix.Component();
124
src/tools/heat/Serialize/wix.cs
+3984 -3958
@@ -24,20 +24,20 @@ namespace WixToolset.Harvesters.Serialize
24 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
25 public enum BurnContainerType
26 {
27 -
27 +
28 IllegalValue = int.MaxValue,
29 -
29 +
30 NotSet = -1,
31 -
31 +
32 attached,
33 -
33 +
34 detached,
35 }
36 -
36 +
37 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38 public class Enums
39 {
40 -
40 +
41 /// <summary>
42 /// Parses a BurnContainerType from a string.
43 /// </summary>
@@ -47,7 +47,7 @@ namespace WixToolset.Harvesters.Serialize
47 Enums.TryParseBurnContainerType(value, out parsedValue);
48 return parsedValue;
49 }
50 -
50 +
51 /// <summary>
52 /// Tries to parse a BurnContainerType from a string.
53 /// </summary>
@@ -76,7 +76,7 @@ namespace WixToolset.Harvesters.Serialize
76 }
77 return true;
78 }
79 -
79 +
80 /// <summary>
81 /// Parses a BurnExeProtocolType from a string.
82 /// </summary>
@@ -86,7 +86,7 @@ namespace WixToolset.Harvesters.Serialize
86 Enums.TryParseBurnExeProtocolType(value, out parsedValue);
87 return parsedValue;
88 }
89 -
89 +
90 /// <summary>
91 /// Tries to parse a BurnExeProtocolType from a string.
92 /// </summary>
@@ -122,7 +122,7 @@ namespace WixToolset.Harvesters.Serialize
122 }
123 return true;
124 }
125 -
125 +
126 /// <summary>
127 /// Parses a YesNoType from a string.
128 /// </summary>
@@ -132,7 +132,7 @@ namespace WixToolset.Harvesters.Serialize
132 Enums.TryParseYesNoType(value, out parsedValue);
133 return parsedValue;
134 }
135 -
135 +
136 /// <summary>
137 /// Tries to parse a YesNoType from a string.
138 /// </summary>
@@ -161,7 +161,7 @@ namespace WixToolset.Harvesters.Serialize
161 }
162 return true;
163 }
164 -
164 +
165 /// <summary>
166 /// Parses a YesNoButtonType from a string.
167 /// </summary>
@@ -171,7 +171,7 @@ namespace WixToolset.Harvesters.Serialize
171 Enums.TryParseYesNoButtonType(value, out parsedValue);
172 return parsedValue;
173 }
174 -
174 +
175 /// <summary>
176 /// Tries to parse a YesNoButtonType from a string.
177 /// </summary>
@@ -207,7 +207,7 @@ namespace WixToolset.Harvesters.Serialize
207 }
208 return true;
209 }
210 -
210 +
211 /// <summary>
212 /// Parses a YesNoDefaultType from a string.
213 /// </summary>
@@ -217,7 +217,7 @@ namespace WixToolset.Harvesters.Serialize
217 Enums.TryParseYesNoDefaultType(value, out parsedValue);
218 return parsedValue;
219 }
220 -
220 +
221 /// <summary>
222 /// Tries to parse a YesNoDefaultType from a string.
223 /// </summary>
@@ -262,7 +262,7 @@ namespace WixToolset.Harvesters.Serialize
262 Enums.TryBundleCacheType(value, out var parsedValue);
263 return parsedValue;
264 }
265 -
265 +
266 /// <summary>
267 /// Tries to parse a YesNoAlwaysType from a string.
268 /// </summary>
@@ -298,7 +298,7 @@ namespace WixToolset.Harvesters.Serialize
298 }
299 return true;
300 }
301 -
301 +
302 /// <summary>
303 /// Parses a RegistryRootType from a string.
304 /// </summary>
@@ -308,7 +308,7 @@ namespace WixToolset.Harvesters.Serialize
308 Enums.TryParseRegistryRootType(value, out parsedValue);
309 return parsedValue;
310 }
311 -
311 +
312 /// <summary>
313 /// Tries to parse a RegistryRootType from a string.
314 /// </summary>
@@ -358,7 +358,7 @@ namespace WixToolset.Harvesters.Serialize
358 }
359 return true;
360 }
361 -
361 +
362 /// <summary>
363 /// Parses a ExitType from a string.
364 /// </summary>
@@ -368,7 +368,7 @@ namespace WixToolset.Harvesters.Serialize
368 Enums.TryParseExitType(value, out parsedValue);
369 return parsedValue;
370 }
371 -
371 +
372 /// <summary>
373 /// Tries to parse a ExitType from a string.
374 /// </summary>
@@ -411,7 +411,7 @@ namespace WixToolset.Harvesters.Serialize
411 }
412 return true;
413 }
414 -
414 +
415 /// <summary>
416 /// Parses a InstallUninstallType from a string.
417 /// </summary>
@@ -421,7 +421,7 @@ namespace WixToolset.Harvesters.Serialize
421 Enums.TryParseInstallUninstallType(value, out parsedValue);
422 return parsedValue;
423 }
424 -
424 +
425 /// <summary>
426 /// Tries to parse a InstallUninstallType from a string.
427 /// </summary>
@@ -457,7 +457,7 @@ namespace WixToolset.Harvesters.Serialize
457 }
458 return true;
459 }
460 -
460 +
461 /// <summary>
462 /// Parses a SequenceType from a string.
463 /// </summary>
@@ -467,7 +467,7 @@ namespace WixToolset.Harvesters.Serialize
467 Enums.TryParseSequenceType(value, out parsedValue);
468 return parsedValue;
469 }
470 -
470 +
471 /// <summary>
472 /// Tries to parse a SequenceType from a string.
473 /// </summary>
@@ -510,7 +510,7 @@ namespace WixToolset.Harvesters.Serialize
510 }
511 return true;
512 }
513 -
513 +
514 /// <summary>
515 /// Parses a CompressionLevelType from a string.
516 /// </summary>
@@ -520,7 +520,7 @@ namespace WixToolset.Harvesters.Serialize
520 Enums.TryParseCompressionLevelType(value, out parsedValue);
521 return parsedValue;
522 }
523 -
523 +
524 /// <summary>
525 /// Tries to parse a CompressionLevelType from a string.
526 /// </summary>
@@ -571,86 +571,86 @@ namespace WixToolset.Harvesters.Serialize
571 return true;
572 }
573 }
574 -
574 +
575 /// <summary>
576 /// The list of communcation protocols with executable packages Burn supports.
577 /// </summary>
578 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
579 public enum BurnExeProtocolType
580 {
581 -
581 +
582 IllegalValue = int.MaxValue,
583 -
583 +
584 NotSet = -1,
585 -
585 +
586 /// <summary>
587 /// The executable package does not support a communication protocol.
588 /// </summary>
589 none,
590 -
590 +
591 /// <summary>
592 /// The executable package is another Burn bundle and supports the Burn communication protocol.
593 /// </summary>
594 burn,
595 -
595 +
596 /// <summary>
597 /// The executable package implements the .NET Framework v4.0 communication protocol.
598 /// </summary>
599 netfx4,
600 }
601 -
601 +
602 /// <summary>
603 /// Values of this type will either be "yes" or "no".
604 /// </summary>
605 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
606 public enum YesNoType
607 {
608 -
608 +
609 IllegalValue = int.MaxValue,
610 -
610 +
611 NotSet = -1,
612 -
612 +
613 no,
614 -
614 +
615 yes,
616 }
617 -
617 +
618 /// <summary>
619 /// Values of this type will either be "button", "yes" or "no".
620 /// </summary>
621 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
622 public enum YesNoButtonType
623 {
624 -
624 +
625 IllegalValue = int.MaxValue,
626 -
626 +
627 NotSet = -1,
628 -
628 +
629 no,
630 -
630 +
631 yes,
632 -
632 +
633 button,
634 }
635 -
635 +
636 /// <summary>
637 /// Values of this type will either be "default", "yes", or "no".
638 /// </summary>
639 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
640 public enum YesNoDefaultType
641 {
642 -
642 +
643 IllegalValue = int.MaxValue,
644 -
644 +
645 NotSet = -1,
646 -
646 +
647 @default,
648 -
648 +
649 no,
650 -
650 +
651 yes,
652 }
653 -
653 +
654 /// <summary>
655 /// Values of this type will either be "always", "yes", or "no".
656 /// </summary>
@@ -658,55 +658,55 @@ namespace WixToolset.Harvesters.Serialize
658 public enum BundleCacheType
659 {
660 NotSet = -1,
661 -
661 +
662 force,
663 -
663 +
664 remove,
665 -
665 +
666 keep,
667 }
668 -
668 +
669 /// <summary>
670 /// Values of this type represent possible registry roots.
671 /// </summary>
672 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
673 public enum RegistryRootType
674 {
675 -
675 +
676 IllegalValue = int.MaxValue,
677 -
677 +
678 NotSet = -1,
679 -
679 +
680 /// <summary>
681 /// A per-user installation will make the operation occur under HKEY_CURRENT_USER.
682 /// A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE.
683 /// </summary>
684 HKMU,
685 -
685 +
686 /// <summary>
687 /// Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value
688 /// from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems,
689 /// the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations.
690 /// </summary>
691 HKCR,
692 -
692 +
693 /// <summary>
694 /// Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values
695 /// in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer.
696 /// </summary>
697 HKCU,
698 -
698 +
699 /// <summary>
700 /// Operation occurs under HKEY_LOCAL_MACHINE.
701 /// </summary>
702 HKLM,
703 -
703 +
704 /// <summary>
705 /// Operation occurs under HKEY_USERS.
706 /// </summary>
707 HKU,
708 }
709 -
709 +
710 /// <summary>
711 /// 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.
712 /// Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes.
@@ -714,131 +714,131 @@ namespace WixToolset.Harvesters.Serialize
714 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
715 public enum ExitType
716 {
717 -
717 +
718 IllegalValue = int.MaxValue,
719 -
719 +
720 NotSet = -1,
721 -
721 +
722 success,
723 -
723 +
724 cancel,
725 -
725 +
726 error,
727 -
727 +
728 suspend,
729 }
730 -
730 +
731 /// <summary>
732 /// Specifies whether an action occur on install, uninstall or both.
733 /// </summary>
734 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
735 public enum InstallUninstallType
736 {
737 -
737 +
738 IllegalValue = int.MaxValue,
739 -
739 +
740 NotSet = -1,
741 -
741 +
742 /// <summary>
743 /// The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
744 /// </summary>
745 install,
746 -
746 +
747 /// <summary>
748 /// The action should happen during uninstall (msiInstallStateAbsent).
749 /// </summary>
750 uninstall,
751 -
751 +
752 /// <summary>
753 /// The action should happen during both install and uninstall.
754 /// </summary>
755 both,
756 }
757 -
757 +
758 /// <summary>
759 /// Controls which sequences the item assignment is sequenced in.
760 /// </summary>
761 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
762 public enum SequenceType
763 {
764 -
764 +
765 IllegalValue = int.MaxValue,
766 -
766 +
767 NotSet = -1,
768 -
768 +
769 /// <summary>
770 /// Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
771 /// </summary>
772 both,
773 -
773 +
774 /// <summary>
775 /// Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped.
776 /// </summary>
777 first,
778 -
778 +
779 /// <summary>
780 /// Schedules the assignment only in the the InstallExecuteSequence.
781 /// </summary>
782 execute,
783 -
783 +
784 /// <summary>
785 /// Schedules the assignment only in the the InstallUISequence.
786 /// </summary>
787 ui,
788 }
789 -
789 +
790 /// <summary>
791 /// Indicates the compression level for a cabinet.
792 /// </summary>
793 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
794 public enum CompressionLevelType
795 {
796 -
796 +
797 IllegalValue = int.MaxValue,
798 -
798 +
799 NotSet = -1,
800 -
800 +
801 high,
802 -
802 +
803 low,
804 -
804 +
805 medium,
806 -
806 +
807 mszip,
808 -
808 +
809 none,
810 }
811 -
811 +
812 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
813 public abstract class ActionModuleSequenceType : ISchemaElement, ISetAttributes
814 {
815 -
815 +
816 private string afterField;
817 -
817 +
818 private bool afterFieldSet;
819 -
819 +
820 private string beforeField;
821 -
821 +
822 private bool beforeFieldSet;
823 -
823 +
824 private YesNoType overridableField;
825 -
825 +
826 private bool overridableFieldSet;
827 -
827 +
828 private int sequenceField;
829 -
829 +
830 private bool sequenceFieldSet;
831 -
831 +
832 private YesNoType suppressField;
833 -
833 +
834 private bool suppressFieldSet;
835 -
835 +
836 private string contentField;
837 -
837 +
838 private bool contentFieldSet;
839 -
839 +
840 private ISchemaElement parentElement;
841 -
841 +
842 /// <summary>
843 /// The name of an action that this action should come after.
844 /// </summary>
@@ -854,7 +854,7 @@ namespace WixToolset.Harvesters.Serialize
854 this.afterField = value;
855 }
856 }
857 -
857 +
858 /// <summary>
859 /// The name of an action that this action should come before.
860 /// </summary>
@@ -870,7 +870,7 @@ namespace WixToolset.Harvesters.Serialize
870 this.beforeField = value;
871 }
872 }
873 -
873 +
874 /// <summary>
875 /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
876 /// </summary>
@@ -886,7 +886,7 @@ namespace WixToolset.Harvesters.Serialize
886 this.overridableField = value;
887 }
888 }
889 -
889 +
890 /// <summary>
891 /// A value used to indicate the position of this action in a sequence.
892 /// </summary>
@@ -902,7 +902,7 @@ namespace WixToolset.Harvesters.Serialize
902 this.sequenceField = value;
903 }
904 }
905 -
905 +
906 /// <summary>
907 /// If yes, this action will not occur.
908 /// </summary>
@@ -918,7 +918,7 @@ namespace WixToolset.Harvesters.Serialize
918 this.suppressField = value;
919 }
920 }
921 -
921 +
922 /// <summary>
923 /// Text node specifies the condition of the action.
924 /// </summary>
@@ -934,7 +934,7 @@ namespace WixToolset.Harvesters.Serialize
934 this.contentField = value;
935 }
936 }
937 -
937 +
938 public virtual ISchemaElement ParentElement
939 {
940 get
@@ -946,7 +946,7 @@ namespace WixToolset.Harvesters.Serialize
946 this.parentElement = value;
947 }
948 }
949 -
949 +
950 /// <summary>
951 /// Processes this element and all child elements into an XmlWriter.
952 /// </summary>
@@ -995,7 +995,7 @@ namespace WixToolset.Harvesters.Serialize
995 writer.WriteString(this.contentField);
996 }
997 }
998 -
998 +
999 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1000 void ISetAttributes.SetAttribute(string name, string value)
1001 {
@@ -1035,25 +1035,25 @@ namespace WixToolset.Harvesters.Serialize
1035 }
1036 }
1037 }
1038 -
1038 +
1039 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1040 public abstract class ActionSequenceType : ISchemaElement, ISetAttributes
1041 {
1042 -
1042 +
1043 private int sequenceField;
1044 -
1044 +
1045 private bool sequenceFieldSet;
1046 -
1046 +
1047 private YesNoType suppressField;
1048 -
1048 +
1049 private bool suppressFieldSet;
1050 -
1050 +
1051 private string contentField;
1052 -
1052 +
1053 private bool contentFieldSet;
1054 -
1054 +
1055 private ISchemaElement parentElement;
1056 -
1056 +
1057 /// <summary>
1058 /// A value used to indicate the position of this action in a sequence.
1059 /// </summary>
@@ -1069,7 +1069,7 @@ namespace WixToolset.Harvesters.Serialize
1069 this.sequenceField = value;
1070 }
1071 }
1072 -
1072 +
1073 /// <summary>
1074 /// If yes, this action will not occur.
1075 /// </summary>
@@ -1085,7 +1085,7 @@ namespace WixToolset.Harvesters.Serialize
1085 this.suppressField = value;
1086 }
1087 }
1088 -
1088 +
1089 public string Content
1090 {
1091 get
@@ -1098,7 +1098,7 @@ namespace WixToolset.Harvesters.Serialize
1098 this.contentField = value;
1099 }
1100 }
1101 -
1101 +
1102 public virtual ISchemaElement ParentElement
1103 {
1104 get
@@ -1110,7 +1110,7 @@ namespace WixToolset.Harvesters.Serialize
1110 this.parentElement = value;
1111 }
1112 }
1113 -
1113 +
1114 /// <summary>
1115 /// Processes this element and all child elements into an XmlWriter.
1116 /// </summary>
@@ -1140,7 +1140,7 @@ namespace WixToolset.Harvesters.Serialize
1140 writer.WriteString(this.contentField);
1141 }
1142 }
1143 -
1143 +
1144 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1145 void ISetAttributes.SetAttribute(string name, string value)
1146 {
@@ -1177,15 +1177,15 @@ namespace WixToolset.Harvesters.Serialize
1177 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1178 public class Wix : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1179 {
1180 -
1180 +
1181 private ElementCollection children;
1182 -
1182 +
1183 private string requiredVersionField;
1184 -
1184 +
1185 private bool requiredVersionFieldSet;
1186 -
1186 +
1187 private ISchemaElement parentElement;
1188 -
1188 +
1189 public Wix()
1190 {
1191 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -1201,7 +1201,7 @@ namespace WixToolset.Harvesters.Serialize
1201 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCreation)));
1202 this.children = childCollection0;
1203 }
1204 -
1204 +
1205 public virtual IEnumerable Children
1206 {
1207 get
@@ -1209,7 +1209,7 @@ namespace WixToolset.Harvesters.Serialize
1209 return this.children;
1210 }
1211 }
1212 -
1212 +
1213 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1214 public virtual IEnumerable this[System.Type childType]
1215 {
@@ -1218,7 +1218,7 @@ namespace WixToolset.Harvesters.Serialize
1218 return this.children.Filter(childType);
1219 }
1220 }
1221 -
1221 +
1222 /// <summary>
1223 /// Required version of the WiX toolset to compile this input file.
1224 /// </summary>
@@ -1234,7 +1234,7 @@ namespace WixToolset.Harvesters.Serialize
1234 this.requiredVersionField = value;
1235 }
1236 }
1237 -
1237 +
1238 public virtual ISchemaElement ParentElement
1239 {
1240 get
@@ -1246,7 +1246,7 @@ namespace WixToolset.Harvesters.Serialize
1246 this.parentElement = value;
1247 }
1248 }
1249 -
1249 +
1250 public virtual void AddChild(ISchemaElement child)
1251 {
1252 if ((null == child))
@@ -1256,7 +1256,7 @@ namespace WixToolset.Harvesters.Serialize
1256 this.children.AddElement(child);
1257 child.ParentElement = this;
1258 }
1259 -
1259 +
1260 public virtual void RemoveChild(ISchemaElement child)
1261 {
1262 if ((null == child))
@@ -1266,7 +1266,7 @@ namespace WixToolset.Harvesters.Serialize
1266 this.children.RemoveElement(child);
1267 child.ParentElement = null;
1268 }
1269 -
1269 +
1270 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1271 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1272 ISchemaElement ICreateChildren.CreateChild(string childName)
@@ -1306,7 +1306,7 @@ namespace WixToolset.Harvesters.Serialize
1306 }
1307 return childValue;
1308 }
1309 -
1309 +
1310 /// <summary>
1311 /// Processes this element and all child elements into an XmlWriter.
1312 /// </summary>
@@ -1321,14 +1321,14 @@ namespace WixToolset.Harvesters.Serialize
1321 {
1322 writer.WriteAttributeString("RequiredVersion", this.requiredVersionField);
1323 }
1324 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
1324 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
1325 {
1326 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
1327 childElement.OutputXml(writer);
1328 }
1329 writer.WriteEndElement();
1330 }
1331 -
1331 +
1332 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1333 void ISetAttributes.SetAttribute(string name, string value)
1334 {
@@ -1343,25 +1343,25 @@ namespace WixToolset.Harvesters.Serialize
1343 }
1344 }
1345 }
1346 -
1346 +
1347 /// <summary>
1348 /// This is the top-level container element for every wxi file.
1349 /// </summary>
1350 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1351 public class Include : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1352 {
1353 -
1353 +
1354 private ElementCollection children;
1355 -
1355 +
1356 private ISchemaElement parentElement;
1357 -
1357 +
1358 public Include()
1359 {
1360 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
1361 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
1362 this.children = childCollection0;
1363 }
1364 -
1364 +
1365 public virtual IEnumerable Children
1366 {
1367 get
@@ -1369,7 +1369,7 @@ namespace WixToolset.Harvesters.Serialize
1369 return this.children;
1370 }
1371 }
1372 -
1372 +
1373 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1374 public virtual IEnumerable this[System.Type childType]
1375 {
@@ -1378,7 +1378,7 @@ namespace WixToolset.Harvesters.Serialize
1378 return this.children.Filter(childType);
1379 }
1380 }
1381 -
1381 +
1382 public virtual ISchemaElement ParentElement
1383 {
1384 get
@@ -1390,7 +1390,7 @@ namespace WixToolset.Harvesters.Serialize
1390 this.parentElement = value;
1391 }
1392 }
1393 -
1393 +
1394 public virtual void AddChild(ISchemaElement child)
1395 {
1396 if ((null == child))
@@ -1400,7 +1400,7 @@ namespace WixToolset.Harvesters.Serialize
1400 this.children.AddElement(child);
1401 child.ParentElement = this;
1402 }
1403 -
1403 +
1404 public virtual void RemoveChild(ISchemaElement child)
1405 {
1406 if ((null == child))
@@ -1410,7 +1410,7 @@ namespace WixToolset.Harvesters.Serialize
1410 this.children.RemoveElement(child);
1411 child.ParentElement = null;
1412 }
1413 -
1413 +
1414 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1415 ISchemaElement ICreateChildren.CreateChild(string childName)
1416 {
@@ -1425,7 +1425,7 @@ namespace WixToolset.Harvesters.Serialize
1425 }
1426 return childValue;
1427 }
1428 -
1428 +
1429 /// <summary>
1430 /// Processes this element and all child elements into an XmlWriter.
1431 /// </summary>
@@ -1436,14 +1436,14 @@ namespace WixToolset.Harvesters.Serialize
1436 throw new ArgumentNullException("writer");
1437 }
1438 writer.WriteStartElement("Include", "http://wixtoolset.org/schemas/v4/wxs");
1439 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
1439 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
1440 {
1441 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
1442 childElement.OutputXml(writer);
1443 }
1444 writer.WriteEndElement();
1445 }
1446 -
1446 +
1447 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1448 void ISetAttributes.SetAttribute(string name, string value)
1449 {
@@ -1453,90 +1453,90 @@ namespace WixToolset.Harvesters.Serialize
1453 }
1454 }
1455 }
1456 -
1456 +
1457 /// <summary>
1458 /// The root element for creating bundled packages.
1459 /// </summary>
1460 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1461 public class Bundle : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1462 {
1463 -
1463 +
1464 private ElementCollection children;
1465 -
1465 +
1466 private string aboutUrlField;
1467 -
1467 +
1468 private bool aboutUrlFieldSet;
1469 -
1469 +
1470 private string copyrightField;
1471 -
1471 +
1472 private bool copyrightFieldSet;
1473 -
1473 +
1474 private YesNoDefaultType compressedField;
1475 -
1475 +
1476 private bool compressedFieldSet;
1477 -
1477 +
1478 private YesNoButtonType disableModifyField;
1479 -
1479 +
1480 private bool disableModifyFieldSet;
1481 -
1481 +
1482 private YesNoType disableRemoveField;
1483 -
1483 +
1484 private bool disableRemoveFieldSet;
1485 -
1485 +
1486 private YesNoType disableRepairField;
1487 -
1487 +
1488 private bool disableRepairFieldSet;
1489 -
1489 +
1490 private string helpTelephoneField;
1491 -
1491 +
1492 private bool helpTelephoneFieldSet;
1493 -
1493 +
1494 private string helpUrlField;
1495 -
1495 +
1496 private bool helpUrlFieldSet;
1497 -
1497 +
1498 private string iconSourceFileField;
1499 -
1499 +
1500 private bool iconSourceFileFieldSet;
1501 -
1501 +
1502 private string manufacturerField;
1503 -
1503 +
1504 private bool manufacturerFieldSet;
1505 -
1505 +
1506 private string nameField;
1507 -
1507 +
1508 private bool nameFieldSet;
1509 -
1509 +
1510 private string parentNameField;
1511 -
1511 +
1512 private bool parentNameFieldSet;
1513 -
1513 +
1514 private string splashScreenSourceFileField;
1515 -
1515 +
1516 private bool splashScreenSourceFileFieldSet;
1517 -
1517 +
1518 private string tagField;
1519 -
1519 +
1520 private bool tagFieldSet;
1521 -
1521 +
1522 private string updateUrlField;
1523 -
1523 +
1524 private bool updateUrlFieldSet;
1525 -
1525 +
1526 private string upgradeCodeField;
1527 -
1527 +
1528 private bool upgradeCodeFieldSet;
1529 -
1529 +
1530 private string versionField;
1531 -
1531 +
1532 private bool versionFieldSet;
1533 -
1533 +
1534 private string conditionField;
1535 -
1535 +
1536 private bool conditionFieldSet;
1537 -
1537 +
1538 private ISchemaElement parentElement;
1539 -
1539 +
1540 public Bundle()
1541 {
1542 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -1558,7 +1558,7 @@ namespace WixToolset.Harvesters.Serialize
1558 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
1559 this.children = childCollection0;
1560 }
1561 -
1561 +
1562 public virtual IEnumerable Children
1563 {
1564 get
@@ -1566,7 +1566,7 @@ namespace WixToolset.Harvesters.Serialize
1566 return this.children;
1567 }
1568 }
1569 -
1569 +
1570 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1571 public virtual IEnumerable this[System.Type childType]
1572 {
@@ -1575,7 +1575,7 @@ namespace WixToolset.Harvesters.Serialize
1575 return this.children.Filter(childType);
1576 }
1577 }
1578 -
1578 +
1579 /// <summary>
1580 /// A URL for more information about the bundle to display in Programs and Features (also
1581 /// known as Add/Remove Programs).
@@ -1592,7 +1592,7 @@ namespace WixToolset.Harvesters.Serialize
1592 this.aboutUrlField = value;
1593 }
1594 }
1595 -
1595 +
1596 /// <summary>
1597 /// The legal copyright found in the version resources of final bundle executable. If
1598 /// this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.".
@@ -1609,7 +1609,7 @@ namespace WixToolset.Harvesters.Serialize
1609 this.copyrightField = value;
1610 }
1611 }
1612 -
1612 +
1613 /// <summary>
1614 /// 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.
1615 /// </summary>
@@ -1625,7 +1625,7 @@ namespace WixToolset.Harvesters.Serialize
1625 this.compressedField = value;
1626 }
1627 }
1628 -
1628 +
1629 /// <summary>
1630 /// Determines whether the bundle can be modified via the Programs and Features (also known as
1631 /// Add/Remove Programs). If the value is "button" then Programs and Features will show a single
@@ -1646,7 +1646,7 @@ namespace WixToolset.Harvesters.Serialize
1646 this.disableModifyField = value;
1647 }
1648 }
1649 -
1649 +
1650 /// <summary>
1651 /// Determines whether the bundle can be removed via the Programs and Features (also
1652 /// known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will
@@ -1667,7 +1667,7 @@ namespace WixToolset.Harvesters.Serialize
1667 this.disableRemoveField = value;
1668 }
1669 }
1670 -
1670 +
1671 public YesNoType DisableRepair
1672 {
1673 get
@@ -1680,7 +1680,7 @@ namespace WixToolset.Harvesters.Serialize
1680 this.disableRepairField = value;
1681 }
1682 }
1683 -
1683 +
1684 /// <summary>
1685 /// A telephone number for help to display in Programs and Features (also known as
1686 /// Add/Remove Programs).
@@ -1697,7 +1697,7 @@ namespace WixToolset.Harvesters.Serialize
1697 this.helpTelephoneField = value;
1698 }
1699 }
1700 -
1700 +
1701 /// <summary>
1702 /// A URL to the help for the bundle to display in Programs and Features (also known as
1703 /// Add/Remove Programs).
@@ -1714,7 +1714,7 @@ namespace WixToolset.Harvesters.Serialize
1714 this.helpUrlField = value;
1715 }
1716 }
1717 -
1717 +
1718 /// <summary>
1719 /// Path to an icon that will replace the default icon in the final Bundle executable.
1720 /// This icon will also be displayed in Programs and Features (also known as Add/Remove
@@ -1732,7 +1732,7 @@ namespace WixToolset.Harvesters.Serialize
1732 this.iconSourceFileField = value;
1733 }
1734 }
1735 -
1735 +
1736 /// <summary>
1737 /// The publisher of the bundle to display in Programs and Features (also known as
1738 /// Add/Remove Programs).
@@ -1749,7 +1749,7 @@ namespace WixToolset.Harvesters.Serialize
1749 this.manufacturerField = value;
1750 }
1751 }
1752 -
1752 +
1753 /// <summary>
1754 /// The name of the bundle to display in Programs and Features (also known as Add/Remove
1755 /// Programs). This name can be accessed and overwritten by a BootstrapperApplication
@@ -1767,7 +1767,7 @@ namespace WixToolset.Harvesters.Serialize
1767 this.nameField = value;
1768 }
1769 }
1770 -
1770 +
1771 /// <summary>
1772 /// The name of the parent bundle to display in Installed Updates (also known as Add/Remove
1773 /// Programs). This name is used to nest or group bundles that will appear as updates.
@@ -1785,7 +1785,7 @@ namespace WixToolset.Harvesters.Serialize
1785 this.parentNameField = value;
1786 }
1787 }
1788 -
1788 +
1789 /// <summary>
1790 /// 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.
1791 /// </summary>
@@ -1801,7 +1801,7 @@ namespace WixToolset.Harvesters.Serialize
1801 this.splashScreenSourceFileField = value;
1802 }
1803 }
1804 -
1804 +
1805 /// <summary>
1806 /// 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.
1807 /// </summary>
@@ -1817,7 +1817,7 @@ namespace WixToolset.Harvesters.Serialize
1817 this.tagField = value;
1818 }
1819 }
1820 -
1820 +
1821 /// <summary>
1822 /// A URL for updates of the bundle to display in Programs and Features (also
1823 /// known as Add/Remove Programs).
@@ -1834,7 +1834,7 @@ namespace WixToolset.Harvesters.Serialize
1834 this.updateUrlField = value;
1835 }
1836 }
1837 -
1837 +
1838 /// <summary>
1839 /// Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the
1840 /// bundle with the highest version will be installed.
@@ -1851,7 +1851,7 @@ namespace WixToolset.Harvesters.Serialize
1851 this.upgradeCodeField = value;
1852 }
1853 }
1854 -
1854 +
1855 /// <summary>
1856 /// The version of the bundle. Newer versions upgrade earlier versions of the bundles
1857 /// with matching UpgradeCodes. If the bundle is registered in Programs and Features
@@ -1869,7 +1869,7 @@ namespace WixToolset.Harvesters.Serialize
1869 this.versionField = value;
1870 }
1871 }
1872 -
1872 +
1873 /// <summary>
1874 /// The condition of the bundle. If the condition is not met, the bundle will
1875 /// refuse to run. Conditions are checked before the bootstrapper application is loaded
@@ -1888,7 +1888,7 @@ namespace WixToolset.Harvesters.Serialize
1888 this.conditionField = value;
1889 }
1890 }
1891 -
1891 +
1892 public virtual ISchemaElement ParentElement
1893 {
1894 get
@@ -1900,7 +1900,7 @@ namespace WixToolset.Harvesters.Serialize
1900 this.parentElement = value;
1901 }
1902 }
1903 -
1903 +
1904 public virtual void AddChild(ISchemaElement child)
1905 {
1906 if ((null == child))
@@ -1910,7 +1910,7 @@ namespace WixToolset.Harvesters.Serialize
1910 this.children.AddElement(child);
1911 child.ParentElement = this;
1912 }
1913 -
1913 +
1914 public virtual void RemoveChild(ISchemaElement child)
1915 {
1916 if ((null == child))
@@ -1920,7 +1920,7 @@ namespace WixToolset.Harvesters.Serialize
1920 this.children.RemoveElement(child);
1921 child.ParentElement = null;
1922 }
1923 -
1923 +
1924 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1925 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1926 ISchemaElement ICreateChildren.CreateChild(string childName)
@@ -1996,7 +1996,7 @@ namespace WixToolset.Harvesters.Serialize
1996 }
1997 return childValue;
1998 }
1999 -
1999 +
2000 /// <summary>
2001 /// Processes this element and all child elements into an XmlWriter.
2002 /// </summary>
@@ -2116,14 +2116,14 @@ namespace WixToolset.Harvesters.Serialize
2116 {
2117 writer.WriteAttributeString("Condition", this.conditionField);
2118 }
2119 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
2119 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
2120 {
2121 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
2122 childElement.OutputXml(writer);
2123 }
2124 writer.WriteEndElement();
2125 }
2126 -
2126 +
2127 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2128 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2129 void ISetAttributes.SetAttribute(string name, string value)
@@ -2224,32 +2224,32 @@ namespace WixToolset.Harvesters.Serialize
2224 }
2225 }
2226 }
2227 -
2227 +
2228 /// <summary>
2229 /// Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location.
2230 /// </summary>
2231 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2232 public class ApprovedExeForElevation : ISchemaElement, ISetAttributes
2233 {
2234 -
2234 +
2235 private string idField;
2236 -
2236 +
2237 private bool idFieldSet;
2238 -
2238 +
2239 private string keyField;
2240 -
2240 +
2241 private bool keyFieldSet;
2242 -
2242 +
2243 private string valueField;
2244 -
2244 +
2245 private bool valueFieldSet;
2246 -
2246 +
2247 private YesNoType win64Field;
2248 -
2248 +
2249 private bool win64FieldSet;
2250 -
2250 +
2251 private ISchemaElement parentElement;
2252 -
2252 +
2253 /// <summary>
2254 /// The identifier of the ApprovedExeForElevation element.
2255 /// </summary>
@@ -2265,7 +2265,7 @@ namespace WixToolset.Harvesters.Serialize
2265 this.idField = value;
2266 }
2267 }
2268 -
2268 +
2269 /// <summary>
2270 /// The key path.
2271 /// For security purposes, the root key will be HKLM and Variables are not supported.
@@ -2282,7 +2282,7 @@ namespace WixToolset.Harvesters.Serialize
2282 this.keyField = value;
2283 }
2284 }
2285 -
2285 +
2286 /// <summary>
2287 /// The value name.
2288 /// For security purposes, Variables are not supported.
@@ -2299,7 +2299,7 @@ namespace WixToolset.Harvesters.Serialize
2299 this.valueField = value;
2300 }
2301 }
2302 -
2302 +
2303 /// <summary>
2304 /// Instructs the search to look in the 64-bit registry when the value is 'yes'.
2305 /// When the value is 'no', the search looks in the 32-bit registry.
@@ -2317,7 +2317,7 @@ namespace WixToolset.Harvesters.Serialize
2317 this.win64Field = value;
2318 }
2319 }
2320 -
2320 +
2321 public virtual ISchemaElement ParentElement
2322 {
2323 get
@@ -2329,7 +2329,7 @@ namespace WixToolset.Harvesters.Serialize
2329 this.parentElement = value;
2330 }
2331 }
2332 -
2332 +
2333 /// <summary>
2334 /// Processes this element and all child elements into an XmlWriter.
2335 /// </summary>
@@ -2365,7 +2365,7 @@ namespace WixToolset.Harvesters.Serialize
2365 }
2366 writer.WriteEndElement();
2367 }
2368 -
2368 +
2369 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2370 void ISetAttributes.SetAttribute(string name, string value)
2371 {
@@ -2395,32 +2395,32 @@ namespace WixToolset.Harvesters.Serialize
2395 }
2396 }
2397 }
2398 -
2398 +
2399 /// <summary>
2400 /// Overrides the default log settings for a bundle.
2401 /// </summary>
2402 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2403 public class Log : ISchemaElement, ISetAttributes
2404 {
2405 -
2405 +
2406 private YesNoType disableField;
2407 -
2407 +
2408 private bool disableFieldSet;
2409 -
2409 +
2410 private string pathVariableField;
2411 -
2411 +
2412 private bool pathVariableFieldSet;
2413 -
2413 +
2414 private string prefixField;
2415 -
2415 +
2416 private bool prefixFieldSet;
2417 -
2417 +
2418 private string extensionField;
2419 -
2419 +
2420 private bool extensionFieldSet;
2421 -
2421 +
2422 private ISchemaElement parentElement;
2423 -
2423 +
2424 /// <summary>
2425 /// Disables the default logging in the Bundle. The end user can still generate a
2426 /// log file by specifying the "-l" command-line argument when installing the
@@ -2438,7 +2438,7 @@ namespace WixToolset.Harvesters.Serialize
2438 this.disableField = value;
2439 }
2440 }
2441 -
2441 +
2442 /// <summary>
2443 /// Name of a Variable that will hold the path to the log file. An empty value
2444 /// will cause the variable to not be set. The default is "WixBundleLog".
@@ -2455,7 +2455,7 @@ namespace WixToolset.Harvesters.Serialize
2455 this.pathVariableField = value;
2456 }
2457 }
2458 -
2458 +
2459 /// <summary>
2460 /// File name and optionally a relative path to use as the prefix for the log file. The
2461 /// default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value
@@ -2473,7 +2473,7 @@ namespace WixToolset.Harvesters.Serialize
2473 this.prefixField = value;
2474 }
2475 }
2476 -
2476 +
2477 /// <summary>
2478 /// The extension to use for the log. The default is ".log".
2479 /// </summary>
@@ -2489,7 +2489,7 @@ namespace WixToolset.Harvesters.Serialize
2489 this.extensionField = value;
2490 }
2491 }
2492 -
2492 +
2493 public virtual ISchemaElement ParentElement
2494 {
2495 get
@@ -2501,7 +2501,7 @@ namespace WixToolset.Harvesters.Serialize
2501 this.parentElement = value;
2502 }
2503 }
2504 -
2504 +
2505 /// <summary>
2506 /// Processes this element and all child elements into an XmlWriter.
2507 /// </summary>
@@ -2537,7 +2537,7 @@ namespace WixToolset.Harvesters.Serialize
2537 }
2538 writer.WriteEndElement();
2539 }
2540 -
2540 +
2541 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2542 void ISetAttributes.SetAttribute(string name, string value)
2543 {
@@ -2567,24 +2567,24 @@ namespace WixToolset.Harvesters.Serialize
2567 }
2568 }
2569 }
2570 -
2570 +
2571 /// <summary>
2572 /// Specify one or more catalog files that will be used to verify the contents of the bundle.
2573 /// </summary>
2574 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2575 public class Catalog : ISchemaElement, ISetAttributes
2576 {
2577 -
2577 +
2578 private string idField;
2579 -
2579 +
2580 private bool idFieldSet;
2581 -
2581 +
2582 private string sourceFileField;
2583 -
2583 +
2584 private bool sourceFileFieldSet;
2585 -
2585 +
2586 private ISchemaElement parentElement;
2587 -
2587 +
2588 /// <summary>
2589 /// The identifier of the catalog element.
2590 /// </summary>
@@ -2600,7 +2600,7 @@ namespace WixToolset.Harvesters.Serialize
2600 this.idField = value;
2601 }
2602 }
2603 -
2603 +
2604 /// <summary>
2605 /// The catalog file
2606 /// </summary>
@@ -2616,7 +2616,7 @@ namespace WixToolset.Harvesters.Serialize
2616 this.sourceFileField = value;
2617 }
2618 }
2619 -
2619 +
2620 public virtual ISchemaElement ParentElement
2621 {
2622 get
@@ -2628,7 +2628,7 @@ namespace WixToolset.Harvesters.Serialize
2628 this.parentElement = value;
2629 }
2630 }
2631 -
2631 +
2632 /// <summary>
2633 /// Processes this element and all child elements into an XmlWriter.
2634 /// </summary>
@@ -2649,7 +2649,7 @@ namespace WixToolset.Harvesters.Serialize
2649 }
2650 writer.WriteEndElement();
2651 }
2652 -
2652 +
2653 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2654 void ISetAttributes.SetAttribute(string name, string value)
2655 {
@@ -2669,30 +2669,30 @@ namespace WixToolset.Harvesters.Serialize
2669 }
2670 }
2671 }
2672 -
2672 +
2673 /// <summary>
2674 /// Contains all the relevant information about the setup UI.
2675 /// </summary>
2676 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2677 public class BootstrapperApplication : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
2678 {
2679 -
2679 +
2680 private ElementCollection children;
2681 -
2681 +
2682 private string idField;
2683 -
2683 +
2684 private bool idFieldSet;
2685 -
2685 +
2686 private string sourceFileField;
2687 -
2687 +
2688 private bool sourceFileFieldSet;
2689 -
2689 +
2690 private string nameField;
2691 -
2691 +
2692 private bool nameFieldSet;
2693 -
2693 +
2694 private ISchemaElement parentElement;
2695 -
2695 +
2696 public BootstrapperApplication()
2697 {
2698 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -2701,7 +2701,7 @@ namespace WixToolset.Harvesters.Serialize
2701 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
2702 this.children = childCollection0;
2703 }
2704 -
2704 +
2705 public virtual IEnumerable Children
2706 {
2707 get
@@ -2709,7 +2709,7 @@ namespace WixToolset.Harvesters.Serialize
2709 return this.children;
2710 }
2711 }
2712 -
2712 +
2713 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
2714 public virtual IEnumerable this[System.Type childType]
2715 {
@@ -2718,7 +2718,7 @@ namespace WixToolset.Harvesters.Serialize
2718 return this.children.Filter(childType);
2719 }
2720 }
2721 -
2721 +
2722 /// <summary>
2723 /// The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element.
2724 /// </summary>
@@ -2734,7 +2734,7 @@ namespace WixToolset.Harvesters.Serialize
2734 this.idField = value;
2735 }
2736 }
2737 -
2737 +
2738 /// <summary>
2739 /// The DLL with the bootstrapper application entry function.
2740 /// </summary>
@@ -2750,7 +2750,7 @@ namespace WixToolset.Harvesters.Serialize
2750 this.sourceFileField = value;
2751 }
2752 }
2753 -
2753 +
2754 /// <summary>
2755 /// 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.
2756 /// </summary>
@@ -2766,7 +2766,7 @@ namespace WixToolset.Harvesters.Serialize
2766 this.nameField = value;
2767 }
2768 }
2769 -
2769 +
2770 public virtual ISchemaElement ParentElement
2771 {
2772 get
@@ -2778,7 +2778,7 @@ namespace WixToolset.Harvesters.Serialize
2778 this.parentElement = value;
2779 }
2780 }
2781 -
2781 +
2782 public virtual void AddChild(ISchemaElement child)
2783 {
2784 if ((null == child))
@@ -2788,7 +2788,7 @@ namespace WixToolset.Harvesters.Serialize
2788 this.children.AddElement(child);
2789 child.ParentElement = this;
2790 }
2791 -
2791 +
2792 public virtual void RemoveChild(ISchemaElement child)
2793 {
2794 if ((null == child))
@@ -2798,7 +2798,7 @@ namespace WixToolset.Harvesters.Serialize
2798 this.children.RemoveElement(child);
2799 child.ParentElement = null;
2800 }
2801 -
2801 +
2802 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2803 ISchemaElement ICreateChildren.CreateChild(string childName)
2804 {
@@ -2821,7 +2821,7 @@ namespace WixToolset.Harvesters.Serialize
2821 }
2822 return childValue;
2823 }
2824 -
2824 +
2825 /// <summary>
2826 /// Processes this element and all child elements into an XmlWriter.
2827 /// </summary>
@@ -2844,14 +2844,14 @@ namespace WixToolset.Harvesters.Serialize
2844 {
2845 writer.WriteAttributeString("Name", this.nameField);
2846 }
2847 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
2847 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
2848 {
2849 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
2850 childElement.OutputXml(writer);
2851 }
2852 writer.WriteEndElement();
2853 }
2854 -
2854 +
2855 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2856 void ISetAttributes.SetAttribute(string name, string value)
2857 {
@@ -2876,22 +2876,22 @@ namespace WixToolset.Harvesters.Serialize
2876 }
2877 }
2878 }
2879 -
2879 +
2880 /// <summary>
2881 /// Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application.
2882 /// </summary>
2883 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2884 public class BootstrapperApplicationRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
2885 {
2886 -
2886 +
2887 private ElementCollection children;
2888 -
2888 +
2889 private string idField;
2890 -
2890 +
2891 private bool idFieldSet;
2892 -
2892 +
2893 private ISchemaElement parentElement;
2894 -
2894 +
2895 public BootstrapperApplicationRef()
2896 {
2897 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -2900,7 +2900,7 @@ namespace WixToolset.Harvesters.Serialize
2900 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
2901 this.children = childCollection0;
2902 }
2903 -
2903 +
2904 public virtual IEnumerable Children
2905 {
2906 get
@@ -2908,7 +2908,7 @@ namespace WixToolset.Harvesters.Serialize
2908 return this.children;
2909 }
2910 }
2911 -
2911 +
2912 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
2913 public virtual IEnumerable this[System.Type childType]
2914 {
@@ -2917,7 +2917,7 @@ namespace WixToolset.Harvesters.Serialize
2917 return this.children.Filter(childType);
2918 }
2919 }
2920 -
2920 +
2921 /// <summary>
2922 /// The identifier of the BootstrapperApplication element to reference.
2923 /// </summary>
@@ -2933,7 +2933,7 @@ namespace WixToolset.Harvesters.Serialize
2933 this.idField = value;
2934 }
2935 }
2936 -
2936 +
2937 public virtual ISchemaElement ParentElement
2938 {
2939 get
@@ -2945,7 +2945,7 @@ namespace WixToolset.Harvesters.Serialize
2945 this.parentElement = value;
2946 }
2947 }
2948 -
2948 +
2949 public virtual void AddChild(ISchemaElement child)
2950 {
2951 if ((null == child))
@@ -2955,7 +2955,7 @@ namespace WixToolset.Harvesters.Serialize
2955 this.children.AddElement(child);
2956 child.ParentElement = this;
2957 }
2958 -
2958 +
2959 public virtual void RemoveChild(ISchemaElement child)
2960 {
2961 if ((null == child))
@@ -2965,7 +2965,7 @@ namespace WixToolset.Harvesters.Serialize
2965 this.children.RemoveElement(child);
2966 child.ParentElement = null;
2967 }
2968 -
2968 +
2969 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2970 ISchemaElement ICreateChildren.CreateChild(string childName)
2971 {
@@ -2988,7 +2988,7 @@ namespace WixToolset.Harvesters.Serialize
2988 }
2989 return childValue;
2990 }
2991 -
2991 +
2992 /// <summary>
2993 /// Processes this element and all child elements into an XmlWriter.
2994 /// </summary>
@@ -3003,14 +3003,14 @@ namespace WixToolset.Harvesters.Serialize
3003 {
3004 writer.WriteAttributeString("Id", this.idField);
3005 }
3006 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3006 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
3007 {
3008 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3009 childElement.OutputXml(writer);
3010 }
3011 writer.WriteEndElement();
3012 }
3013 -
3013 +
3014 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3015 void ISetAttributes.SetAttribute(string name, string value)
3016 {
@@ -3025,30 +3025,30 @@ namespace WixToolset.Harvesters.Serialize
3025 }
3026 }
3027 }
3028 -
3028 +
3029 /// <summary>
3030 /// This element has been deprecated. Use the BootstrapperApplication element instead.
3031 /// </summary>
3032 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3033 public class UX : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3034 {
3035 -
3035 +
3036 private ElementCollection children;
3037 -
3037 +
3038 private string sourceFileField;
3039 -
3039 +
3040 private bool sourceFileFieldSet;
3041 -
3041 +
3042 private string nameField;
3043 -
3043 +
3044 private bool nameFieldSet;
3045 -
3045 +
3046 private string splashScreenSourceFileField;
3047 -
3047 +
3048 private bool splashScreenSourceFileFieldSet;
3049 -
3049 +
3050 private ISchemaElement parentElement;
3051 -
3051 +
3052 public UX()
3053 {
3054 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -3056,7 +3056,7 @@ namespace WixToolset.Harvesters.Serialize
3056 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
3057 this.children = childCollection0;
3058 }
3059 -
3059 +
3060 public virtual IEnumerable Children
3061 {
3062 get
@@ -3064,7 +3064,7 @@ namespace WixToolset.Harvesters.Serialize
3064 return this.children;
3065 }
3066 }
3067 -
3067 +
3068 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3069 public virtual IEnumerable this[System.Type childType]
3070 {
@@ -3073,7 +3073,7 @@ namespace WixToolset.Harvesters.Serialize
3073 return this.children.Filter(childType);
3074 }
3075 }
3076 -
3076 +
3077 /// <summary>
3078 /// See the BootstrapperApplication instead.
3079 /// </summary>
@@ -3089,7 +3089,7 @@ namespace WixToolset.Harvesters.Serialize
3089 this.sourceFileField = value;
3090 }
3091 }
3092 -
3092 +
3093 /// <summary>
3094 /// See the BootstrapperApplication instead.
3095 /// </summary>
@@ -3105,7 +3105,7 @@ namespace WixToolset.Harvesters.Serialize
3105 this.nameField = value;
3106 }
3107 }
3108 -
3108 +
3109 /// <summary>
3110 /// See the BootstrapperApplication instead.
3111 /// </summary>
@@ -3121,7 +3121,7 @@ namespace WixToolset.Harvesters.Serialize
3121 this.splashScreenSourceFileField = value;
3122 }
3123 }
3124 -
3124 +
3125 public virtual ISchemaElement ParentElement
3126 {
3127 get
@@ -3133,7 +3133,7 @@ namespace WixToolset.Harvesters.Serialize
3133 this.parentElement = value;
3134 }
3135 }
3136 -
3136 +
3137 public virtual void AddChild(ISchemaElement child)
3138 {
3139 if ((null == child))
@@ -3143,7 +3143,7 @@ namespace WixToolset.Harvesters.Serialize
3143 this.children.AddElement(child);
3144 child.ParentElement = this;
3145 }
3146 -
3146 +
3147 public virtual void RemoveChild(ISchemaElement child)
3148 {
3149 if ((null == child))
@@ -3153,7 +3153,7 @@ namespace WixToolset.Harvesters.Serialize
3153 this.children.RemoveElement(child);
3154 child.ParentElement = null;
3155 }
3156 -
3156 +
3157 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3158 ISchemaElement ICreateChildren.CreateChild(string childName)
3159 {
@@ -3176,7 +3176,7 @@ namespace WixToolset.Harvesters.Serialize
3176 }
3177 return childValue;
3178 }
3179 -
3179 +
3180 /// <summary>
3181 /// Processes this element and all child elements into an XmlWriter.
3182 /// </summary>
@@ -3199,14 +3199,14 @@ namespace WixToolset.Harvesters.Serialize
3199 {
3200 writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField);
3201 }
3202 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3202 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
3203 {
3204 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3205 childElement.OutputXml(writer);
3206 }
3207 writer.WriteEndElement();
3208 }
3209 -
3209 +
3210 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3211 void ISetAttributes.SetAttribute(string name, string value)
3212 {
@@ -3231,7 +3231,7 @@ namespace WixToolset.Harvesters.Serialize
3231 }
3232 }
3233 }
3234 -
3234 +
3235 /// <summary>
3236 /// Writes additional information to the Windows registry that can be used to detect the bundle.
3237 /// This registration is intended primarily for update to an existing product.
@@ -3239,29 +3239,29 @@ namespace WixToolset.Harvesters.Serialize
3239 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3240 public class OptionalUpdateRegistration : ISchemaElement, ISetAttributes
3241 {
3242 -
3242 +
3243 private string manufacturerField;
3244 -
3244 +
3245 private bool manufacturerFieldSet;
3246 -
3246 +
3247 private string departmentField;
3248 -
3248 +
3249 private bool departmentFieldSet;
3250 -
3250 +
3251 private string productFamilyField;
3252 -
3252 +
3253 private bool productFamilyFieldSet;
3254 -
3254 +
3255 private string nameField;
3256 -
3256 +
3257 private bool nameFieldSet;
3258 -
3258 +
3259 private string classificationField;
3260 -
3260 +
3261 private bool classificationFieldSet;
3262 -
3262 +
3263 private ISchemaElement parentElement;
3264 -
3264 +
3265 /// <summary>
3266 /// The name of the manufacturer. The default is the Bundle/@Manufacturer attribute,
3267 /// but may also be a short form, ex: Acme instead of Acme Corporation.
@@ -3279,7 +3279,7 @@ namespace WixToolset.Harvesters.Serialize
3279 this.manufacturerField = value;
3280 }
3281 }
3282 -
3282 +
3283 /// <summary>
3284 /// The name of the department or division publishing the update bundle.
3285 /// The PublishingGroup registry value is not written if this attribute is not specified.
@@ -3296,7 +3296,7 @@ namespace WixToolset.Harvesters.Serialize
3296 this.departmentField = value;
3297 }
3298 }
3299 -
3299 +
3300 /// <summary>
3301 /// The name of the family of products being updated. The default is the Bundle/@ParentName attribute.
3302 /// The corresponding registry key is not created if neither attribute is specified.
@@ -3313,7 +3313,7 @@ namespace WixToolset.Harvesters.Serialize
3313 this.productFamilyField = value;
3314 }
3315 }
3316 -
3316 +
3317 /// <summary>
3318 /// The name of the bundle. The default is the Bundle/@Name attribute,
3319 /// but may also be a short form, ex: KB12345 instead of Update to Product (KB12345).
@@ -3331,7 +3331,7 @@ namespace WixToolset.Harvesters.Serialize
3331 this.nameField = value;
3332 }
3333 }
3334 -
3334 +
3335 /// <summary>
3336 /// The release type of the update bundle, such as Update, Security Update, Service Pack, etc.
3337 /// The default value is Update.
@@ -3348,7 +3348,7 @@ namespace WixToolset.Harvesters.Serialize
3348 this.classificationField = value;
3349 }
3350 }
3351 -
3351 +
3352 public virtual ISchemaElement ParentElement
3353 {
3354 get
@@ -3360,7 +3360,7 @@ namespace WixToolset.Harvesters.Serialize
3360 this.parentElement = value;
3361 }
3362 }
3363 -
3363 +
3364 /// <summary>
3365 /// Processes this element and all child elements into an XmlWriter.
3366 /// </summary>
@@ -3393,7 +3393,7 @@ namespace WixToolset.Harvesters.Serialize
3393 }
3394 writer.WriteEndElement();
3395 }
3396 -
3396 +
3397 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3398 void ISetAttributes.SetAttribute(string name, string value)
3399 {
@@ -3428,30 +3428,30 @@ namespace WixToolset.Harvesters.Serialize
3428 }
3429 }
3430 }
3431 -
3431 +
3432 /// <summary>
3433 /// Contains the chain of packages to install.
3434 /// </summary>
3435 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3436 public class Chain : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3437 {
3438 -
3438 +
3439 private ElementCollection children;
3440 -
3440 +
3441 private YesNoType disableRollbackField;
3442 -
3442 +
3443 private bool disableRollbackFieldSet;
3444 -
3444 +
3445 private YesNoType disableSystemRestoreField;
3446 -
3446 +
3447 private bool disableSystemRestoreFieldSet;
3448 -
3448 +
3449 private YesNoType parallelCacheField;
3450 -
3450 +
3451 private bool parallelCacheFieldSet;
3452 -
3452 +
3453 private ISchemaElement parentElement;
3454 -
3454 +
3455 public Chain()
3456 {
3457 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -3463,7 +3463,7 @@ namespace WixToolset.Harvesters.Serialize
3463 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
3464 this.children = childCollection0;
3465 }
3466 -
3466 +
3467 public virtual IEnumerable Children
3468 {
3469 get
@@ -3471,7 +3471,7 @@ namespace WixToolset.Harvesters.Serialize
3471 return this.children;
3472 }
3473 }
3474 -
3474 +
3475 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3476 public virtual IEnumerable this[System.Type childType]
3477 {
@@ -3480,7 +3480,7 @@ namespace WixToolset.Harvesters.Serialize
3480 return this.children.Filter(childType);
3481 }
3482 }
3483 -
3483 +
3484 /// <summary>
3485 /// Specifies whether the bundle will attempt to rollback packages
3486 /// executed in the chain. If "yes" is specified then when a vital
@@ -3501,7 +3501,7 @@ namespace WixToolset.Harvesters.Serialize
3501 this.disableRollbackField = value;
3502 }
3503 }
3504 -
3504 +
3505 /// <summary>
3506 /// Specifies whether the bundle will attempt to create a system
3507 /// restore point when executing the chain. If "yes" is specified then
@@ -3522,7 +3522,7 @@ namespace WixToolset.Harvesters.Serialize
3522 this.disableSystemRestoreField = value;
3523 }
3524 }
3525 -
3525 +
3526 /// <summary>
3527 /// Specifies whether the bundle will start installing packages
3528 /// while other packages are still being cached. If "yes",
@@ -3542,7 +3542,7 @@ namespace WixToolset.Harvesters.Serialize
3542 this.parallelCacheField = value;
3543 }
3544 }
3545 -
3545 +
3546 public virtual ISchemaElement ParentElement
3547 {
3548 get
@@ -3554,7 +3554,7 @@ namespace WixToolset.Harvesters.Serialize
3554 this.parentElement = value;
3555 }
3556 }
3557 -
3557 +
3558 public virtual void AddChild(ISchemaElement child)
3559 {
3560 if ((null == child))
@@ -3564,7 +3564,7 @@ namespace WixToolset.Harvesters.Serialize
3564 this.children.AddElement(child);
3565 child.ParentElement = this;
3566 }
3567 -
3567 +
3568 public virtual void RemoveChild(ISchemaElement child)
3569 {
3570 if ((null == child))
@@ -3574,7 +3574,7 @@ namespace WixToolset.Harvesters.Serialize
3574 this.children.RemoveElement(child);
3575 child.ParentElement = null;
3576 }
3577 -
3577 +
3578 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3579 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3580 ISchemaElement ICreateChildren.CreateChild(string childName)
@@ -3614,7 +3614,7 @@ namespace WixToolset.Harvesters.Serialize
3614 }
3615 return childValue;
3616 }
3617 -
3617 +
3618 /// <summary>
3619 /// Processes this element and all child elements into an XmlWriter.
3620 /// </summary>
@@ -3658,14 +3658,14 @@ namespace WixToolset.Harvesters.Serialize
3658 writer.WriteAttributeString("ParallelCache", "yes");
3659 }
3660 }
3661 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3661 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
3662 {
3663 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3664 childElement.OutputXml(writer);
3665 }
3666 writer.WriteEndElement();
3667 }
3668 -
3668 +
3669 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3670 void ISetAttributes.SetAttribute(string name, string value)
3671 {
@@ -3690,102 +3690,102 @@ namespace WixToolset.Harvesters.Serialize
3690 }
3691 }
3692 }
3693 -
3693 +
3694 /// <summary>
3695 /// Describes a single msi package to install.
3696 /// </summary>
3697 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3698 public class MsiPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3699 {
3700 -
3700 +
3701 private ElementCollection children;
3702 -
3702 +
3703 private string sourceFileField;
3704 -
3704 +
3705 private bool sourceFileFieldSet;
3706 -
3706 +
3707 private string nameField;
3708 -
3708 +
3709 private bool nameFieldSet;
3710 -
3710 +
3711 private string downloadUrlField;
3712 -
3712 +
3713 private bool downloadUrlFieldSet;
3714 -
3714 +
3715 private string idField;
3716 -
3716 +
3717 private bool idFieldSet;
3718 -
3718 +
3719 private string afterField;
3720 -
3720 +
3721 private bool afterFieldSet;
3722 -
3722 +
3723 private string installSizeField;
3724 -
3724 +
3725 private bool installSizeFieldSet;
3726 -
3726 +
3727 private string installConditionField;
3728 -
3728 +
3729 private bool installConditionFieldSet;
3730 -
3730 +
3731 private BundleCacheType cacheField;
3732 -
3732 +
3733 private bool cacheFieldSet;
3734 -
3734 +
3735 private string cacheIdField;
3736 -
3736 +
3737 private bool cacheIdFieldSet;
3738 -
3738 +
3739 private string displayNameField;
3740 -
3740 +
3741 private bool displayNameFieldSet;
3742 -
3742 +
3743 private string descriptionField;
3744 -
3744 +
3745 private bool descriptionFieldSet;
3746 -
3746 +
3747 private string logPathVariableField;
3748 -
3748 +
3749 private bool logPathVariableFieldSet;
3750 -
3750 +
3751 private string rollbackLogPathVariableField;
3752 -
3752 +
3753 private bool rollbackLogPathVariableFieldSet;
3754 -
3754 +
3755 private YesNoType permanentField;
3756 -
3756 +
3757 private bool permanentFieldSet;
3758 -
3758 +
3759 private YesNoType vitalField;
3760 -
3760 +
3761 private bool vitalFieldSet;
3762 -
3762 +
3763 private YesNoDefaultType compressedField;
3764 -
3764 +
3765 private bool compressedFieldSet;
3766 -
3766 +
3767 private YesNoType enableSignatureVerificationField;
3768 -
3768 +
3769 private bool enableSignatureVerificationFieldSet;
3770 -
3770 +
3771 private YesNoType enableFeatureSelectionField;
3772 -
3772 +
3773 private bool enableFeatureSelectionFieldSet;
3774 -
3774 +
3775 private YesNoType forcePerMachineField;
3776 -
3776 +
3777 private bool forcePerMachineFieldSet;
3778 -
3778 +
3779 private YesNoType suppressLooseFilePayloadGenerationField;
3780 -
3780 +
3781 private bool suppressLooseFilePayloadGenerationFieldSet;
3782 -
3782 +
3783 private YesNoType visibleField;
3784 -
3784 +
3785 private bool visibleFieldSet;
3786 -
3786 +
3787 private ISchemaElement parentElement;
3788 -
3788 +
3789 public MsiPackage()
3790 {
3791 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -3796,7 +3796,7 @@ namespace WixToolset.Harvesters.Serialize
3796 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
3797 this.children = childCollection0;
3798 }
3799 -
3799 +
3800 public virtual IEnumerable Children
3801 {
3802 get
@@ -3804,7 +3804,7 @@ namespace WixToolset.Harvesters.Serialize
3804 return this.children;
3805 }
3806 }
3807 -
3807 +
3808 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3809 public virtual IEnumerable this[System.Type childType]
3810 {
@@ -3813,7 +3813,7 @@ namespace WixToolset.Harvesters.Serialize
3813 return this.children.Filter(childType);
3814 }
3815 }
3816 -
3816 +
3817 /// <summary>
3818 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
3819 /// At a minimum, the SourceFile or Name attribute must be specified.
@@ -3830,7 +3830,7 @@ namespace WixToolset.Harvesters.Serialize
3830 this.sourceFileField = value;
3831 }
3832 }
3833 -
3833 +
3834 /// <summary>
3835 /// The destination path and file name for this chain payload. Use this attribute to rename the
3836 /// chain entry point or extract it into a subfolder. The default value is the file name from the
@@ -3849,7 +3849,7 @@ namespace WixToolset.Harvesters.Serialize
3849 this.nameField = value;
3850 }
3851 }
3852 -
3852 +
3853 public string DownloadUrl
3854 {
3855 get
@@ -3862,7 +3862,7 @@ namespace WixToolset.Harvesters.Serialize
3862 this.downloadUrlField = value;
3863 }
3864 }
3865 -
3865 +
3866 /// <summary>
3867 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
3868 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
@@ -3879,7 +3879,7 @@ namespace WixToolset.Harvesters.Serialize
3879 this.idField = value;
3880 }
3881 }
3882 -
3882 +
3883 /// <summary>
3884 /// The identifier of another package that this one should be installed after. By default the After
3885 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
@@ -3897,7 +3897,7 @@ namespace WixToolset.Harvesters.Serialize
3897 this.afterField = value;
3898 }
3899 }
3900 -
3900 +
3901 /// <summary>
3902 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
3903 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
@@ -3915,7 +3915,7 @@ namespace WixToolset.Harvesters.Serialize
3915 this.installSizeField = value;
3916 }
3917 }
3918 -
3918 +
3919 /// <summary>
3920 /// 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.
3921 /// </summary>
@@ -3931,7 +3931,7 @@ namespace WixToolset.Harvesters.Serialize
3931 this.installConditionField = value;
3932 }
3933 }
3934 -
3934 +
3935 /// <summary>
3936 /// Whether to cache the package. The default is "yes".
3937 /// </summary>
@@ -3947,7 +3947,7 @@ namespace WixToolset.Harvesters.Serialize
3947 this.cacheField = value;
3948 }
3949 }
3950 -
3950 +
3951 /// <summary>
3952 /// The identifier to use when caching the package.
3953 /// </summary>
@@ -3963,7 +3963,7 @@ namespace WixToolset.Harvesters.Serialize
3963 this.cacheIdField = value;
3964 }
3965 }
3966 -
3966 +
3967 /// <summary>
3968 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
3969 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
@@ -3982,7 +3982,7 @@ namespace WixToolset.Harvesters.Serialize
3982 this.displayNameField = value;
3983 }
3984 }
3985 -
3985 +
3986 /// <summary>
3987 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
3988 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
@@ -4001,7 +4001,7 @@ namespace WixToolset.Harvesters.Serialize
4001 this.descriptionField = value;
4002 }
4003 }
4004 -
4004 +
4005 /// <summary>
4006 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
4007 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
@@ -4018,7 +4018,7 @@ namespace WixToolset.Harvesters.Serialize
4018 this.logPathVariableField = value;
4019 }
4020 }
4021 -
4021 +
4022 /// <summary>
4023 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
4024 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
@@ -4036,7 +4036,7 @@ namespace WixToolset.Harvesters.Serialize
4036 this.rollbackLogPathVariableField = value;
4037 }
4038 }
4039 -
4039 +
4040 /// <summary>
4041 /// Specifies whether the package can be uninstalled. The default is "no".
4042 /// </summary>
@@ -4052,7 +4052,7 @@ namespace WixToolset.Harvesters.Serialize
4052 this.permanentField = value;
4053 }
4054 }
4055 -
4055 +
4056 /// <summary>
4057 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
4058 /// indicates that if the package fails then the chain will fail and rollback or stop. If
@@ -4070,7 +4070,7 @@ namespace WixToolset.Harvesters.Serialize
4070 this.vitalField = value;
4071 }
4072 }
4073 -
4073 +
4074 /// <summary>
4075 /// Whether the package payload should be embedded in a container or left as an external payload.
4076 /// </summary>
@@ -4086,7 +4086,7 @@ namespace WixToolset.Harvesters.Serialize
4086 this.compressedField = value;
4087 }
4088 }
4089 -
4089 +
4090 /// <summary>
4091 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
4092 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
@@ -4105,7 +4105,7 @@ namespace WixToolset.Harvesters.Serialize
4105 this.enableSignatureVerificationField = value;
4106 }
4107 }
4108 -
4108 +
4109 /// <summary>
4110 /// Specifies whether the bundle will allow individual control over the installation state of Features inside
4111 /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and
@@ -4123,7 +4123,7 @@ namespace WixToolset.Harvesters.Serialize
4123 this.enableFeatureSelectionField = value;
4124 }
4125 }
4126 -
4126 +
4127 /// <summary>
4128 /// Override the automatic per-machine detection of MSI packages and force the package to be per-machine.
4129 /// The default is "no", which allows the tools to detect the expected value.
@@ -4140,7 +4140,7 @@ namespace WixToolset.Harvesters.Serialize
4140 this.forcePerMachineField = value;
4141 }
4142 }
4143 -
4143 +
4144 /// <summary>
4145 /// This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package
4146 /// to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads.
@@ -4158,7 +4158,7 @@ namespace WixToolset.Harvesters.Serialize
4158 this.suppressLooseFilePayloadGenerationField = value;
4159 }
4160 }
4161 -
4161 +
4162 /// <summary>
4163 /// Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is
4164 /// specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI
@@ -4176,7 +4176,7 @@ namespace WixToolset.Harvesters.Serialize
4176 this.visibleField = value;
4177 }
4178 }
4179 -
4179 +
4180 public virtual ISchemaElement ParentElement
4181 {
4182 get
@@ -4188,7 +4188,7 @@ namespace WixToolset.Harvesters.Serialize
4188 this.parentElement = value;
4189 }
4190 }
4191 -
4191 +
4192 public virtual void AddChild(ISchemaElement child)
4193 {
4194 if ((null == child))
@@ -4198,7 +4198,7 @@ namespace WixToolset.Harvesters.Serialize
4198 this.children.AddElement(child);
4199 child.ParentElement = this;
4200 }
4201 -
4201 +
4202 public virtual void RemoveChild(ISchemaElement child)
4203 {
4204 if ((null == child))
@@ -4208,7 +4208,7 @@ namespace WixToolset.Harvesters.Serialize
4208 this.children.RemoveElement(child);
4209 child.ParentElement = null;
4210 }
4211 -
4211 +
4212 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4213 ISchemaElement ICreateChildren.CreateChild(string childName)
4214 {
@@ -4239,7 +4239,7 @@ namespace WixToolset.Harvesters.Serialize
4239 }
4240 return childValue;
4241 }
4242 -
4242 +
4243 /// <summary>
4244 /// Processes this element and all child elements into an XmlWriter.
4245 /// </summary>
@@ -4406,14 +4406,14 @@ namespace WixToolset.Harvesters.Serialize
4406 writer.WriteAttributeString("Visible", "yes");
4407 }
4408 }
4409 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
4409 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
4410 {
4411 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
4412 childElement.OutputXml(writer);
4413 }
4414 writer.WriteEndElement();
4415 }
4416 -
4416 +
4417 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4418 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4419 void ISetAttributes.SetAttribute(string name, string value)
@@ -4529,94 +4529,94 @@ namespace WixToolset.Harvesters.Serialize
4529 }
4530 }
4531 }
4532 -
4532 +
4533 /// <summary>
4534 /// Describes a single msp package to install.
4535 /// </summary>
4536 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
4537 public class MspPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4538 {
4539 -
4539 +
4540 private ElementCollection children;
4541 -
4541 +
4542 private string sourceFileField;
4543 -
4543 +
4544 private bool sourceFileFieldSet;
4545 -
4545 +
4546 private string nameField;
4547 -
4547 +
4548 private bool nameFieldSet;
4549 -
4549 +
4550 private string downloadUrlField;
4551 -
4551 +
4552 private bool downloadUrlFieldSet;
4553 -
4553 +
4554 private string idField;
4555 -
4555 +
4556 private bool idFieldSet;
4557 -
4557 +
4558 private string afterField;
4559 -
4559 +
4560 private bool afterFieldSet;
4561 -
4561 +
4562 private string installSizeField;
4563 -
4563 +
4564 private bool installSizeFieldSet;
4565 -
4565 +
4566 private string installConditionField;
4567 -
4567 +
4568 private bool installConditionFieldSet;
4569 -
4569 +
4570 private BundleCacheType cacheField;
4571 -
4571 +
4572 private bool cacheFieldSet;
4573 -
4573 +
4574 private string cacheIdField;
4575 -
4575 +
4576 private bool cacheIdFieldSet;
4577 -
4577 +
4578 private string displayNameField;
4579 -
4579 +
4580 private bool displayNameFieldSet;
4581 -
4581 +
4582 private string descriptionField;
4583 -
4583 +
4584 private bool descriptionFieldSet;
4585 -
4585 +
4586 private string logPathVariableField;
4587 -
4587 +
4588 private bool logPathVariableFieldSet;
4589 -
4589 +
4590 private string rollbackLogPathVariableField;
4591 -
4591 +
4592 private bool rollbackLogPathVariableFieldSet;
4593 -
4593 +
4594 private YesNoType permanentField;
4595 -
4595 +
4596 private bool permanentFieldSet;
4597 -
4597 +
4598 private YesNoType vitalField;
4599 -
4599 +
4600 private bool vitalFieldSet;
4601 -
4601 +
4602 private YesNoDefaultType compressedField;
4603 -
4603 +
4604 private bool compressedFieldSet;
4605 -
4605 +
4606 private YesNoType enableSignatureVerificationField;
4607 -
4607 +
4608 private bool enableSignatureVerificationFieldSet;
4609 -
4609 +
4610 private YesNoDefaultType perMachineField;
4611 -
4611 +
4612 private bool perMachineFieldSet;
4613 -
4613 +
4614 private YesNoType slipstreamField;
4615 -
4615 +
4616 private bool slipstreamFieldSet;
4617 -
4617 +
4618 private ISchemaElement parentElement;
4619 -
4619 +
4620 public MspPackage()
4621 {
4622 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -4626,7 +4626,7 @@ namespace WixToolset.Harvesters.Serialize
4626 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
4627 this.children = childCollection0;
4628 }
4629 -
4629 +
4630 public virtual IEnumerable Children
4631 {
4632 get
@@ -4634,7 +4634,7 @@ namespace WixToolset.Harvesters.Serialize
4634 return this.children;
4635 }
4636 }
4637 -
4637 +
4638 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4639 public virtual IEnumerable this[System.Type childType]
4640 {
@@ -4643,7 +4643,7 @@ namespace WixToolset.Harvesters.Serialize
4643 return this.children.Filter(childType);
4644 }
4645 }
4646 -
4646 +
4647 /// <summary>
4648 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
4649 /// At a minimum, the SourceFile or Name attribute must be specified.
@@ -4660,7 +4660,7 @@ namespace WixToolset.Harvesters.Serialize
4660 this.sourceFileField = value;
4661 }
4662 }
4663 -
4663 +
4664 /// <summary>
4665 /// The destination path and file name for this chain payload. Use this attribute to rename the
4666 /// chain entry point or extract it into a subfolder. The default value is the file name from the
@@ -4679,7 +4679,7 @@ namespace WixToolset.Harvesters.Serialize
4679 this.nameField = value;
4680 }
4681 }
4682 -
4682 +
4683 public string DownloadUrl
4684 {
4685 get
@@ -4692,7 +4692,7 @@ namespace WixToolset.Harvesters.Serialize
4692 this.downloadUrlField = value;
4693 }
4694 }
4695 -
4695 +
4696 /// <summary>
4697 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
4698 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
@@ -4709,7 +4709,7 @@ namespace WixToolset.Harvesters.Serialize
4709 this.idField = value;
4710 }
4711 }
4712 -
4712 +
4713 /// <summary>
4714 /// The identifier of another package that this one should be installed after. By default the After
4715 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
@@ -4727,7 +4727,7 @@ namespace WixToolset.Harvesters.Serialize
4727 this.afterField = value;
4728 }
4729 }
4730 -
4730 +
4731 /// <summary>
4732 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
4733 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
@@ -4745,7 +4745,7 @@ namespace WixToolset.Harvesters.Serialize
4745 this.installSizeField = value;
4746 }
4747 }
4748 -
4748 +
4749 /// <summary>
4750 /// 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.
4751 /// </summary>
@@ -4761,7 +4761,7 @@ namespace WixToolset.Harvesters.Serialize
4761 this.installConditionField = value;
4762 }
4763 }
4764 -
4764 +
4765 /// <summary>
4766 /// Whether to cache the package. The default is "keep".
4767 /// </summary>
@@ -4777,7 +4777,7 @@ namespace WixToolset.Harvesters.Serialize
4777 this.cacheField = value;
4778 }
4779 }
4780 -
4780 +
4781 /// <summary>
4782 /// The identifier to use when caching the package.
4783 /// </summary>
@@ -4793,7 +4793,7 @@ namespace WixToolset.Harvesters.Serialize
4793 this.cacheIdField = value;
4794 }
4795 }
4796 -
4796 +
4797 /// <summary>
4798 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
4799 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
@@ -4812,7 +4812,7 @@ namespace WixToolset.Harvesters.Serialize
4812 this.displayNameField = value;
4813 }
4814 }
4815 -
4815 +
4816 /// <summary>
4817 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
4818 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
@@ -4831,7 +4831,7 @@ namespace WixToolset.Harvesters.Serialize
4831 this.descriptionField = value;
4832 }
4833 }
4834 -
4834 +
4835 /// <summary>
4836 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
4837 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
@@ -4848,7 +4848,7 @@ namespace WixToolset.Harvesters.Serialize
4848 this.logPathVariableField = value;
4849 }
4850 }
4851 -
4851 +
4852 /// <summary>
4853 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
4854 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
@@ -4866,7 +4866,7 @@ namespace WixToolset.Harvesters.Serialize
4866 this.rollbackLogPathVariableField = value;
4867 }
4868 }
4869 -
4869 +
4870 /// <summary>
4871 /// Specifies whether the package can be uninstalled. The default is "no".
4872 /// </summary>
@@ -4882,7 +4882,7 @@ namespace WixToolset.Harvesters.Serialize
4882 this.permanentField = value;
4883 }
4884 }
4885 -
4885 +
4886 /// <summary>
4887 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
4888 /// indicates that if the package fails then the chain will fail and rollback or stop. If
@@ -4900,7 +4900,7 @@ namespace WixToolset.Harvesters.Serialize
4900 this.vitalField = value;
4901 }
4902 }
4903 -
4903 +
4904 /// <summary>
4905 /// Whether the package payload should be embedded in a container or left as an external payload.
4906 /// </summary>
@@ -4916,7 +4916,7 @@ namespace WixToolset.Harvesters.Serialize
4916 this.compressedField = value;
4917 }
4918 }
4919 -
4919 +
4920 /// <summary>
4921 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
4922 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
@@ -4935,7 +4935,7 @@ namespace WixToolset.Harvesters.Serialize
4935 this.enableSignatureVerificationField = value;
4936 }
4937 }
4938 -
4938 +
4939 /// <summary>
4940 /// Indicates the package must be executed elevated. The default is "no".
4941 /// </summary>
@@ -4951,7 +4951,7 @@ namespace WixToolset.Harvesters.Serialize
4951 this.perMachineField = value;
4952 }
4953 }
4954 -
4954 +
4955 /// <summary>
4956 /// Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no".
4957 /// Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired.
@@ -4968,7 +4968,7 @@ namespace WixToolset.Harvesters.Serialize
4968 this.slipstreamField = value;
4969 }
4970 }
4971 -
4971 +
4972 public virtual ISchemaElement ParentElement
4973 {
4974 get
@@ -4980,7 +4980,7 @@ namespace WixToolset.Harvesters.Serialize
4980 this.parentElement = value;
4981 }
4982 }
4983 -
4983 +
4984 public virtual void AddChild(ISchemaElement child)
4985 {
4986 if ((null == child))
@@ -4990,7 +4990,7 @@ namespace WixToolset.Harvesters.Serialize
4990 this.children.AddElement(child);
4991 child.ParentElement = this;
4992 }
4993 -
4993 +
4994 public virtual void RemoveChild(ISchemaElement child)
4995 {
4996 if ((null == child))
@@ -5000,7 +5000,7 @@ namespace WixToolset.Harvesters.Serialize
5000 this.children.RemoveElement(child);
5001 child.ParentElement = null;
5002 }
5003 -
5003 +
5004 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5005 ISchemaElement ICreateChildren.CreateChild(string childName)
5006 {
@@ -5027,7 +5027,7 @@ namespace WixToolset.Harvesters.Serialize
5027 }
5028 return childValue;
5029 }
5030 -
5030 +
5031 /// <summary>
5032 /// Processes this element and all child elements into an XmlWriter.
5033 /// </summary>
@@ -5176,14 +5176,14 @@ namespace WixToolset.Harvesters.Serialize
5176 writer.WriteAttributeString("Slipstream", "yes");
5177 }
5178 }
5179 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
5179 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
5180 {
5181 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
5182 childElement.OutputXml(writer);
5183 }
5184 writer.WriteEndElement();
5185 }
5186 -
5186 +
5187 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5188 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5189 void ISetAttributes.SetAttribute(string name, string value)
@@ -5289,94 +5289,94 @@ namespace WixToolset.Harvesters.Serialize
5289 }
5290 }
5291 }
5292 -
5292 +
5293 /// <summary>
5294 /// Describes a single msu package to install.
5295 /// </summary>
5296 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
5297 public class MsuPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
5298 {
5299 -
5299 +
5300 private ElementCollection children;
5301 -
5301 +
5302 private string sourceFileField;
5303 -
5303 +
5304 private bool sourceFileFieldSet;
5305 -
5305 +
5306 private string nameField;
5307 -
5307 +
5308 private bool nameFieldSet;
5309 -
5309 +
5310 private string downloadUrlField;
5311 -
5311 +
5312 private bool downloadUrlFieldSet;
5313 -
5313 +
5314 private string idField;
5315 -
5315 +
5316 private bool idFieldSet;
5317 -
5317 +
5318 private string afterField;
5319 -
5319 +
5320 private bool afterFieldSet;
5321 -
5321 +
5322 private string installSizeField;
5323 -
5323 +
5324 private bool installSizeFieldSet;
5325 -
5325 +
5326 private string installConditionField;
5327 -
5327 +
5328 private bool installConditionFieldSet;
5329 -
5329 +
5330 private BundleCacheType cacheField;
5331 -
5331 +
5332 private bool cacheFieldSet;
5333 -
5333 +
5334 private string cacheIdField;
5335 -
5335 +
5336 private bool cacheIdFieldSet;
5337 -
5337 +
5338 private string displayNameField;
5339 -
5339 +
5340 private bool displayNameFieldSet;
5341 -
5341 +
5342 private string descriptionField;
5343 -
5343 +
5344 private bool descriptionFieldSet;
5345 -
5345 +
5346 private string logPathVariableField;
5347 -
5347 +
5348 private bool logPathVariableFieldSet;
5349 -
5349 +
5350 private string rollbackLogPathVariableField;
5351 -
5351 +
5352 private bool rollbackLogPathVariableFieldSet;
5353 -
5353 +
5354 private YesNoType permanentField;
5355 -
5355 +
5356 private bool permanentFieldSet;
5357 -
5357 +
5358 private YesNoType vitalField;
5359 -
5359 +
5360 private bool vitalFieldSet;
5361 -
5361 +
5362 private YesNoDefaultType compressedField;
5363 -
5363 +
5364 private bool compressedFieldSet;
5365 -
5365 +
5366 private YesNoType enableSignatureVerificationField;
5367 -
5367 +
5368 private bool enableSignatureVerificationFieldSet;
5369 -
5369 +
5370 private string detectConditionField;
5371 -
5371 +
5372 private bool detectConditionFieldSet;
5373 -
5373 +
5374 private string kBField;
5375 -
5375 +
5376 private bool kBFieldSet;
5377 -
5377 +
5378 private ISchemaElement parentElement;
5379 -
5379 +
5380 public MsuPackage()
5381 {
5382 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -5386,7 +5386,7 @@ namespace WixToolset.Harvesters.Serialize
5386 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
5387 this.children = childCollection0;
5388 }
5389 -
5389 +
5390 public virtual IEnumerable Children
5391 {
5392 get
@@ -5394,7 +5394,7 @@ namespace WixToolset.Harvesters.Serialize
5394 return this.children;
5395 }
5396 }
5397 -
5397 +
5398 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
5399 public virtual IEnumerable this[System.Type childType]
5400 {
@@ -5403,7 +5403,7 @@ namespace WixToolset.Harvesters.Serialize
5403 return this.children.Filter(childType);
5404 }
5405 }
5406 -
5406 +
5407 /// <summary>
5408 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
5409 /// At a minimum, the SourceFile or Name attribute must be specified.
@@ -5420,7 +5420,7 @@ namespace WixToolset.Harvesters.Serialize
5420 this.sourceFileField = value;
5421 }
5422 }
5423 -
5423 +
5424 /// <summary>
5425 /// The destination path and file name for this chain payload. Use this attribute to rename the
5426 /// chain entry point or extract it into a subfolder. The default value is the file name from the
@@ -5439,7 +5439,7 @@ namespace WixToolset.Harvesters.Serialize
5439 this.nameField = value;
5440 }
5441 }
5442 -
5442 +
5443 public string DownloadUrl
5444 {
5445 get
@@ -5452,7 +5452,7 @@ namespace WixToolset.Harvesters.Serialize
5452 this.downloadUrlField = value;
5453 }
5454 }
5455 -
5455 +
5456 /// <summary>
5457 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
5458 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
@@ -5469,7 +5469,7 @@ namespace WixToolset.Harvesters.Serialize
5469 this.idField = value;
5470 }
5471 }
5472 -
5472 +
5473 /// <summary>
5474 /// The identifier of another package that this one should be installed after. By default the After
5475 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
@@ -5487,7 +5487,7 @@ namespace WixToolset.Harvesters.Serialize
5487 this.afterField = value;
5488 }
5489 }
5490 -
5490 +
5491 /// <summary>
5492 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
5493 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
@@ -5505,7 +5505,7 @@ namespace WixToolset.Harvesters.Serialize
5505 this.installSizeField = value;
5506 }
5507 }
5508 -
5508 +
5509 /// <summary>
5510 /// 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.
5511 /// </summary>
@@ -5521,7 +5521,7 @@ namespace WixToolset.Harvesters.Serialize
5521 this.installConditionField = value;
5522 }
5523 }
5524 -
5524 +
5525 /// <summary>
5526 /// Whether to cache the package. The default is "yes".
5527 /// </summary>
@@ -5537,7 +5537,7 @@ namespace WixToolset.Harvesters.Serialize
5537 this.cacheField = value;
5538 }
5539 }
5540 -
5540 +
5541 /// <summary>
5542 /// The identifier to use when caching the package.
5543 /// </summary>
@@ -5553,7 +5553,7 @@ namespace WixToolset.Harvesters.Serialize
5553 this.cacheIdField = value;
5554 }
5555 }
5556 -
5556 +
5557 /// <summary>
5558 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
5559 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
@@ -5572,7 +5572,7 @@ namespace WixToolset.Harvesters.Serialize
5572 this.displayNameField = value;
5573 }
5574 }
5575 -
5575 +
5576 /// <summary>
5577 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
5578 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
@@ -5591,7 +5591,7 @@ namespace WixToolset.Harvesters.Serialize
5591 this.descriptionField = value;
5592 }
5593 }
5594 -
5594 +
5595 /// <summary>
5596 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
5597 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
@@ -5608,7 +5608,7 @@ namespace WixToolset.Harvesters.Serialize
5608 this.logPathVariableField = value;
5609 }
5610 }
5611 -
5611 +
5612 /// <summary>
5613 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
5614 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
@@ -5626,7 +5626,7 @@ namespace WixToolset.Harvesters.Serialize
5626 this.rollbackLogPathVariableField = value;
5627 }
5628 }
5629 -
5629 +
5630 /// <summary>
5631 /// Specifies whether the package can be uninstalled. The default is "no".
5632 /// </summary>
@@ -5642,7 +5642,7 @@ namespace WixToolset.Harvesters.Serialize
5642 this.permanentField = value;
5643 }
5644 }
5645 -
5645 +
5646 /// <summary>
5647 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
5648 /// indicates that if the package fails then the chain will fail and rollback or stop. If
@@ -5660,7 +5660,7 @@ namespace WixToolset.Harvesters.Serialize
5660 this.vitalField = value;
5661 }
5662 }
5663 -
5663 +
5664 /// <summary>
5665 /// Whether the package payload should be embedded in a container or left as an external payload.
5666 /// </summary>
@@ -5676,7 +5676,7 @@ namespace WixToolset.Harvesters.Serialize
5676 this.compressedField = value;
5677 }
5678 }
5679 -
5679 +
5680 /// <summary>
5681 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
5682 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
@@ -5695,7 +5695,7 @@ namespace WixToolset.Harvesters.Serialize
5695 this.enableSignatureVerificationField = value;
5696 }
5697 }
5698 -
5698 +
5699 /// <summary>
5700 /// A condition that determines if the package is present on the target system. This condition can use built-in
5701 /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
@@ -5715,7 +5715,7 @@ namespace WixToolset.Harvesters.Serialize
5715 this.detectConditionField = value;
5716 }
5717 }
5718 -
5718 +
5719 /// <summary>
5720 /// The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to
5721 /// be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute
@@ -5733,7 +5733,7 @@ namespace WixToolset.Harvesters.Serialize
5733 this.kBField = value;
5734 }
5735 }
5736 -
5736 +
5737 public virtual ISchemaElement ParentElement
5738 {
5739 get
@@ -5745,7 +5745,7 @@ namespace WixToolset.Harvesters.Serialize
5745 this.parentElement = value;
5746 }
5747 }
5748 -
5748 +
5749 public virtual void AddChild(ISchemaElement child)
5750 {
5751 if ((null == child))
@@ -5755,7 +5755,7 @@ namespace WixToolset.Harvesters.Serialize
5755 this.children.AddElement(child);
5756 child.ParentElement = this;
5757 }
5758 -
5758 +
5759 public virtual void RemoveChild(ISchemaElement child)
5760 {
5761 if ((null == child))
@@ -5765,7 +5765,7 @@ namespace WixToolset.Harvesters.Serialize
5765 this.children.RemoveElement(child);
5766 child.ParentElement = null;
5767 }
5768 -
5768 +
5769 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5770 ISchemaElement ICreateChildren.CreateChild(string childName)
5771 {
@@ -5792,7 +5792,7 @@ namespace WixToolset.Harvesters.Serialize
5792 }
5793 return childValue;
5794 }
5795 -
5795 +
5796 /// <summary>
5797 /// Processes this element and all child elements into an XmlWriter.
5798 /// </summary>
@@ -5923,14 +5923,14 @@ namespace WixToolset.Harvesters.Serialize
5923 {
5924 writer.WriteAttributeString("KB", this.kBField);
5925 }
5926 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
5926 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
5927 {
5928 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
5929 childElement.OutputXml(writer);
5930 }
5931 writer.WriteEndElement();
5932 }
5933 -
5933 +
5934 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5935 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5936 void ISetAttributes.SetAttribute(string name, string value)
@@ -6036,110 +6036,110 @@ namespace WixToolset.Harvesters.Serialize
6036 }
6037 }
6038 }
6039 -
6039 +
6040 /// <summary>
6041 /// Describes a single exe package to install.
6042 /// </summary>
6043 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
6044 public class ExePackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
6045 {
6046 -
6046 +
6047 private ElementCollection children;
6048 -
6048 +
6049 private string sourceFileField;
6050 -
6050 +
6051 private bool sourceFileFieldSet;
6052 -
6052 +
6053 private string nameField;
6054 -
6054 +
6055 private bool nameFieldSet;
6056 -
6056 +
6057 private string downloadUrlField;
6058 -
6058 +
6059 private bool downloadUrlFieldSet;
6060 -
6060 +
6061 private string idField;
6062 -
6062 +
6063 private bool idFieldSet;
6064 -
6064 +
6065 private string afterField;
6066 -
6066 +
6067 private bool afterFieldSet;
6068 -
6068 +
6069 private string installSizeField;
6070 -
6070 +
6071 private bool installSizeFieldSet;
6072 -
6072 +
6073 private string installConditionField;
6074 -
6074 +
6075 private bool installConditionFieldSet;
6076 -
6076 +
6077 private BundleCacheType cacheField;
6078 -
6078 +
6079 private bool cacheFieldSet;
6080 -
6080 +
6081 private string cacheIdField;
6082 -
6082 +
6083 private bool cacheIdFieldSet;
6084 -
6084 +
6085 private string displayNameField;
6086 -
6086 +
6087 private bool displayNameFieldSet;
6088 -
6088 +
6089 private string descriptionField;
6090 -
6090 +
6091 private bool descriptionFieldSet;
6092 -
6092 +
6093 private string logPathVariableField;
6094 -
6094 +
6095 private bool logPathVariableFieldSet;
6096 -
6096 +
6097 private string rollbackLogPathVariableField;
6098 -
6098 +
6099 private bool rollbackLogPathVariableFieldSet;
6100 -
6100 +
6101 private YesNoType permanentField;
6102 -
6102 +
6103 private bool permanentFieldSet;
6104 -
6104 +
6105 private YesNoType vitalField;
6106 -
6106 +
6107 private bool vitalFieldSet;
6108 -
6108 +
6109 private YesNoDefaultType compressedField;
6110 -
6110 +
6111 private bool compressedFieldSet;
6112 -
6112 +
6113 private YesNoType enableSignatureVerificationField;
6114 -
6114 +
6115 private bool enableSignatureVerificationFieldSet;
6116 -
6116 +
6117 private string detectConditionField;
6118 -
6118 +
6119 private bool detectConditionFieldSet;
6120 -
6120 +
6121 private string installCommandField;
6122 -
6122 +
6123 private bool installCommandFieldSet;
6124 -
6124 +
6125 private string repairCommandField;
6126 -
6126 +
6127 private bool repairCommandFieldSet;
6128 -
6128 +
6129 private string uninstallCommandField;
6130 -
6130 +
6131 private bool uninstallCommandFieldSet;
6132 -
6132 +
6133 private YesNoDefaultType perMachineField;
6134 -
6134 +
6135 private bool perMachineFieldSet;
6136 -
6136 +
6137 private BurnExeProtocolType protocolField;
6138 -
6138 +
6139 private bool protocolFieldSet;
6140 -
6140 +
6141 private ISchemaElement parentElement;
6142 -
6142 +
6143 public ExePackage()
6144 {
6145 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -6151,7 +6151,7 @@ namespace WixToolset.Harvesters.Serialize
6151 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
6152 this.children = childCollection0;
6153 }
6154 -
6154 +
6155 public virtual IEnumerable Children
6156 {
6157 get
@@ -6159,7 +6159,7 @@ namespace WixToolset.Harvesters.Serialize
6159 return this.children;
6160 }
6161 }
6162 -
6162 +
6163 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
6164 public virtual IEnumerable this[System.Type childType]
6165 {
@@ -6168,7 +6168,7 @@ namespace WixToolset.Harvesters.Serialize
6168 return this.children.Filter(childType);
6169 }
6170 }
6171 -
6171 +
6172 /// <summary>
6173 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
6174 /// At a minimum, the SourceFile or Name attribute must be specified.
@@ -6185,7 +6185,7 @@ namespace WixToolset.Harvesters.Serialize
6185 this.sourceFileField = value;
6186 }
6187 }
6188 -
6188 +
6189 /// <summary>
6190 /// The destination path and file name for this chain payload. Use this attribute to rename the
6191 /// chain entry point or extract it into a subfolder. The default value is the file name from the
@@ -6204,7 +6204,7 @@ namespace WixToolset.Harvesters.Serialize
6204 this.nameField = value;
6205 }
6206 }
6207 -
6207 +
6208 public string DownloadUrl
6209 {
6210 get
@@ -6217,7 +6217,7 @@ namespace WixToolset.Harvesters.Serialize
6217 this.downloadUrlField = value;
6218 }
6219 }
6220 -
6220 +
6221 /// <summary>
6222 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
6223 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
@@ -6234,7 +6234,7 @@ namespace WixToolset.Harvesters.Serialize
6234 this.idField = value;
6235 }
6236 }
6237 -
6237 +
6238 /// <summary>
6239 /// The identifier of another package that this one should be installed after. By default the After
6240 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
@@ -6252,7 +6252,7 @@ namespace WixToolset.Harvesters.Serialize
6252 this.afterField = value;
6253 }
6254 }
6255 -
6255 +
6256 /// <summary>
6257 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
6258 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
@@ -6270,7 +6270,7 @@ namespace WixToolset.Harvesters.Serialize
6270 this.installSizeField = value;
6271 }
6272 }
6273 -
6273 +
6274 /// <summary>
6275 /// 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.
6276 /// </summary>
@@ -6286,7 +6286,7 @@ namespace WixToolset.Harvesters.Serialize
6286 this.installConditionField = value;
6287 }
6288 }
6289 -
6289 +
6290 /// <summary>
6291 /// Whether to cache the package. The default is "yes".
6292 /// </summary>
@@ -6302,7 +6302,7 @@ namespace WixToolset.Harvesters.Serialize
6302 this.cacheField = value;
6303 }
6304 }
6305 -
6305 +
6306 /// <summary>
6307 /// The identifier to use when caching the package.
6308 /// </summary>
@@ -6318,7 +6318,7 @@ namespace WixToolset.Harvesters.Serialize
6318 this.cacheIdField = value;
6319 }
6320 }
6321 -
6321 +
6322 /// <summary>
6323 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
6324 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
@@ -6337,7 +6337,7 @@ namespace WixToolset.Harvesters.Serialize
6337 this.displayNameField = value;
6338 }
6339 }
6340 -
6340 +
6341 /// <summary>
6342 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
6343 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
@@ -6356,7 +6356,7 @@ namespace WixToolset.Harvesters.Serialize
6356 this.descriptionField = value;
6357 }
6358 }
6359 -
6359 +
6360 /// <summary>
6361 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
6362 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
@@ -6373,7 +6373,7 @@ namespace WixToolset.Harvesters.Serialize
6373 this.logPathVariableField = value;
6374 }
6375 }
6376 -
6376 +
6377 /// <summary>
6378 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
6379 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
@@ -6391,7 +6391,7 @@ namespace WixToolset.Harvesters.Serialize
6391 this.rollbackLogPathVariableField = value;
6392 }
6393 }
6394 -
6394 +
6395 /// <summary>
6396 /// Specifies whether the package can be uninstalled. The default is "no".
6397 /// </summary>
@@ -6407,7 +6407,7 @@ namespace WixToolset.Harvesters.Serialize
6407 this.permanentField = value;
6408 }
6409 }
6410 -
6410 +
6411 /// <summary>
6412 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
6413 /// indicates that if the package fails then the chain will fail and rollback or stop. If
@@ -6425,7 +6425,7 @@ namespace WixToolset.Harvesters.Serialize
6425 this.vitalField = value;
6426 }
6427 }
6428 -
6428 +
6429 /// <summary>
6430 /// Whether the package payload should be embedded in a container or left as an external payload.
6431 /// </summary>
@@ -6441,7 +6441,7 @@ namespace WixToolset.Harvesters.Serialize
6441 this.compressedField = value;
6442 }
6443 }
6444 -
6444 +
6445 /// <summary>
6446 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
6447 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
@@ -6460,7 +6460,7 @@ namespace WixToolset.Harvesters.Serialize
6460 this.enableSignatureVerificationField = value;
6461 }
6462 }
6463 -
6463 +
6464 /// <summary>
6465 /// A condition that determines if the package is present on the target system. This condition can use built-in
6466 /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
@@ -6480,7 +6480,7 @@ namespace WixToolset.Harvesters.Serialize
6480 this.detectConditionField = value;
6481 }
6482 }
6483 -
6483 +
6484 /// <summary>
6485 /// 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.
6486 /// </summary>
@@ -6496,7 +6496,7 @@ namespace WixToolset.Harvesters.Serialize
6496 this.installCommandField = value;
6497 }
6498 }
6499 -
6499 +
6500 /// <summary>
6501 /// The command-line arguments to specify to indicate a repair. If the executable package can be repaired but
6502 /// does not require any special command-line arguments to do so then set the attribute's value to blank. To
@@ -6514,7 +6514,7 @@ namespace WixToolset.Harvesters.Serialize
6514 this.repairCommandField = value;
6515 }
6516 }
6517 -
6517 +
6518 /// <summary>
6519 /// 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".
6520 /// </summary>
@@ -6530,7 +6530,7 @@ namespace WixToolset.Harvesters.Serialize
6530 this.uninstallCommandField = value;
6531 }
6532 }
6533 -
6533 +
6534 /// <summary>
6535 /// Indicates the package must be executed elevated. The default is "no".
6536 /// </summary>
@@ -6546,7 +6546,7 @@ namespace WixToolset.Harvesters.Serialize
6546 this.perMachineField = value;
6547 }
6548 }
6549 -
6549 +
6550 /// <summary>
6551 /// Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none".
6552 /// </summary>
@@ -6562,7 +6562,7 @@ namespace WixToolset.Harvesters.Serialize
6562 this.protocolField = value;
6563 }
6564 }
6565 -
6565 +
6566 public virtual ISchemaElement ParentElement
6567 {
6568 get
@@ -6574,7 +6574,7 @@ namespace WixToolset.Harvesters.Serialize
6574 this.parentElement = value;
6575 }
6576 }
6577 -
6577 +
6578 public virtual void AddChild(ISchemaElement child)
6579 {
6580 if ((null == child))
@@ -6584,7 +6584,7 @@ namespace WixToolset.Harvesters.Serialize
6584 this.children.AddElement(child);
6585 child.ParentElement = this;
6586 }
6587 -
6587 +
6588 public virtual void RemoveChild(ISchemaElement child)
6589 {
6590 if ((null == child))
@@ -6594,7 +6594,7 @@ namespace WixToolset.Harvesters.Serialize
6594 this.children.RemoveElement(child);
6595 child.ParentElement = null;
6596 }
6597 -
6597 +
6598 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6599 ISchemaElement ICreateChildren.CreateChild(string childName)
6600 {
@@ -6629,7 +6629,7 @@ namespace WixToolset.Harvesters.Serialize
6629 }
6630 return childValue;
6631 }
6632 -
6632 +
6633 /// <summary>
6634 /// Processes this element and all child elements into an XmlWriter.
6635 /// </summary>
@@ -6798,14 +6798,14 @@ namespace WixToolset.Harvesters.Serialize
6798 writer.WriteAttributeString("Protocol", "netfx4");
6799 }
6800 }
6801 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
6801 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
6802 {
6803 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
6804 childElement.OutputXml(writer);
6805 }
6806 writer.WriteEndElement();
6807 }
6808 -
6808 +
6809 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6810 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
6811 void ISetAttributes.SetAttribute(string name, string value)
@@ -6931,37 +6931,37 @@ namespace WixToolset.Harvesters.Serialize
6931 }
6932 }
6933 }
6934 -
6934 +
6935 /// <summary>
6936 /// Describes a rollback boundary in the chain.
6937 /// </summary>
6938 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
6939 public class RollbackBoundary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
6940 {
6941 -
6941 +
6942 private ElementCollection children;
6943 -
6943 +
6944 private string idField;
6945 -
6945 +
6946 private bool idFieldSet;
6947 -
6947 +
6948 private YesNoType vitalField;
6949 -
6949 +
6950 private bool vitalFieldSet;
6951 -
6951 +
6952 private YesNoType transactionField;
6953 -
6953 +
6954 private bool transactionFieldSet;
6955 -
6955 +
6956 private ISchemaElement parentElement;
6957 -
6957 +
6958 public RollbackBoundary()
6959 {
6960 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
6961 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
6962 this.children = childCollection0;
6963 }
6964 -
6964 +
6965 public virtual IEnumerable Children
6966 {
6967 get
@@ -6969,7 +6969,7 @@ namespace WixToolset.Harvesters.Serialize
6969 return this.children;
6970 }
6971 }
6972 -
6972 +
6973 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
6974 public virtual IEnumerable this[System.Type childType]
6975 {
@@ -6978,7 +6978,7 @@ namespace WixToolset.Harvesters.Serialize
6978 return this.children.Filter(childType);
6979 }
6980 }
6981 -
6981 +
6982 /// <summary>
6983 /// Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is
6984 /// not provided a stable identifier will be generated.
@@ -6995,7 +6995,7 @@ namespace WixToolset.Harvesters.Serialize
6995 this.idField = value;
6996 }
6997 }
6998 -
6998 +
6999 /// <summary>
7000 /// Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if
7001 /// the rollback boundary is encountered then the chain will fail and rollback or stop. If "no"
@@ -7013,7 +7013,7 @@ namespace WixToolset.Harvesters.Serialize
7013 this.vitalField = value;
7014 }
7015 }
7016 -
7016 +
7017 /// <summary>
7018 /// Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no"
7019 /// </summary>
@@ -7029,7 +7029,7 @@ namespace WixToolset.Harvesters.Serialize
7029 this.transactionField = value;
7030 }
7031 }
7032 -
7032 +
7033 public virtual ISchemaElement ParentElement
7034 {
7035 get
@@ -7041,7 +7041,7 @@ namespace WixToolset.Harvesters.Serialize
7041 this.parentElement = value;
7042 }
7043 }
7044 -
7044 +
7045 public virtual void AddChild(ISchemaElement child)
7046 {
7047 if ((null == child))
@@ -7051,7 +7051,7 @@ namespace WixToolset.Harvesters.Serialize
7051 this.children.AddElement(child);
7052 child.ParentElement = this;
7053 }
7054 -
7054 +
7055 public virtual void RemoveChild(ISchemaElement child)
7056 {
7057 if ((null == child))
@@ -7061,7 +7061,7 @@ namespace WixToolset.Harvesters.Serialize
7061 this.children.RemoveElement(child);
7062 child.ParentElement = null;
7063 }
7064 -
7064 +
7065 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7066 ISchemaElement ICreateChildren.CreateChild(string childName)
7067 {
@@ -7076,7 +7076,7 @@ namespace WixToolset.Harvesters.Serialize
7076 }
7077 return childValue;
7078 }
7079 -
7079 +
7080 /// <summary>
7081 /// Processes this element and all child elements into an XmlWriter.
7082 /// </summary>
@@ -7113,14 +7113,14 @@ namespace WixToolset.Harvesters.Serialize
7113 writer.WriteAttributeString("Transaction", "yes");
7114 }
7115 }
7116 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
7116 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
7117 {
7118 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
7119 childElement.OutputXml(writer);
7120 }
7121 writer.WriteEndElement();
7122 }
7123 -
7123 +
7124 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7125 void ISetAttributes.SetAttribute(string name, string value)
7126 {
@@ -7145,22 +7145,22 @@ namespace WixToolset.Harvesters.Serialize
7145 }
7146 }
7147 }
7148 -
7148 +
7149 /// <summary>
7150 /// Describes a package group to a bootstrapper.
7151 /// </summary>
7152 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7153 public class PackageGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
7154 {
7155 -
7155 +
7156 private ElementCollection children;
7157 -
7157 +
7158 private string idField;
7159 -
7159 +
7160 private bool idFieldSet;
7161 -
7161 +
7162 private ISchemaElement parentElement;
7163 -
7163 +
7164 public PackageGroup()
7165 {
7166 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
@@ -7172,7 +7172,7 @@ namespace WixToolset.Harvesters.Serialize
7172 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
7173 this.children = childCollection0;
7174 }
7175 -
7175 +
7176 public virtual IEnumerable Children
7177 {
7178 get
@@ -7180,7 +7180,7 @@ namespace WixToolset.Harvesters.Serialize
7180 return this.children;
7181 }
7182 }
7183 -
7183 +
7184 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
7185 public virtual IEnumerable this[System.Type childType]
7186 {
@@ -7189,7 +7189,7 @@ namespace WixToolset.Harvesters.Serialize
7189 return this.children.Filter(childType);
7190 }
7191 }
7192 -
7192 +
7193 /// <summary>
7194 /// Identifier for package group.
7195 /// </summary>
@@ -7205,7 +7205,7 @@ namespace WixToolset.Harvesters.Serialize
7205 this.idField = value;
7206 }
7207 }
7208 -
7208 +
7209 public virtual ISchemaElement ParentElement
7210 {
7211 get
@@ -7217,7 +7217,7 @@ namespace WixToolset.Harvesters.Serialize
7217 this.parentElement = value;
7218 }
7219 }
7220 -
7220 +
7221 public virtual void AddChild(ISchemaElement child)
7222 {
7223 if ((null == child))
@@ -7227,7 +7227,7 @@ namespace WixToolset.Harvesters.Serialize
7227 this.children.AddElement(child);
7228 child.ParentElement = this;
7229 }
7230 -
7230 +
7231 public virtual void RemoveChild(ISchemaElement child)
7232 {
7233 if ((null == child))
@@ -7237,7 +7237,7 @@ namespace WixToolset.Harvesters.Serialize
7237 this.children.RemoveElement(child);
7238 child.ParentElement = null;
7239 }
7240 -
7240 +
7241 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7242 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
7243 ISchemaElement ICreateChildren.CreateChild(string childName)
@@ -7277,7 +7277,7 @@ namespace WixToolset.Harvesters.Serialize
7277 }
7278 return childValue;
7279 }
7280 -
7280 +
7281 /// <summary>
7282 /// Processes this element and all child elements into an XmlWriter.
7283 /// </summary>
@@ -7292,14 +7292,14 @@ namespace WixToolset.Harvesters.Serialize
7292 {
7293 writer.WriteAttributeString("Id", this.idField);
7294 }
7295 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
7295 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
7296 {
7297 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
7298 childElement.OutputXml(writer);
7299 }
7300 writer.WriteEndElement();
7301 }
7302 -
7302 +
7303 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7304 void ISetAttributes.SetAttribute(string name, string value)
7305 {
@@ -7314,24 +7314,24 @@ namespace WixToolset.Harvesters.Serialize
7314 }
7315 }
7316 }
7317 -
7317 +
7318 /// <summary>
7319 /// Create a reference to PackageGroup element that exists inside a Bundle or Fragment element.
7320 /// </summary>
7321 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7322 public class PackageGroupRef : ISchemaElement, ISetAttributes
7323 {
7324 -
7324 +
7325 private string idField;
7326 -
7326 +
7327 private bool idFieldSet;
7328 -
7328 +
7329 private string afterField;
7330 -
7330 +
7331 private bool afterFieldSet;
7332 -
7332 +
7333 private ISchemaElement parentElement;
7334 -
7334 +
7335 /// <summary>
7336 /// The identifier of the PackageGroup element to reference.
7337 /// </summary>
@@ -7347,7 +7347,7 @@ namespace WixToolset.Harvesters.Serialize
7347 this.idField = value;
7348 }
7349 }
7350 -
7350 +
7351 /// <summary>
7352 /// The identifier of a package that this group should be installed after.
7353 /// </summary>
@@ -7363,7 +7363,7 @@ namespace WixToolset.Harvesters.Serialize
7363 this.afterField = value;
7364 }
7365 }
7366 -
7366 +
7367 public virtual ISchemaElement ParentElement
7368 {
7369 get
@@ -7375,7 +7375,7 @@ namespace WixToolset.Harvesters.Serialize
7375 this.parentElement = value;
7376 }
7377 }
7378 -
7378 +
7379 /// <summary>
7380 /// Processes this element and all child elements into an XmlWriter.
7381 /// </summary>
@@ -7396,7 +7396,7 @@ namespace WixToolset.Harvesters.Serialize
7396 }
7397 writer.WriteEndElement();
7398 }
7399 -
7399 +
7400 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7401 void ISetAttributes.SetAttribute(string name, string value)
7402 {
@@ -7416,24 +7416,24 @@ namespace WixToolset.Harvesters.Serialize
7416 }
7417 }
7418 }
7419 -
7419 +
7420 /// <summary>
7421 /// Allows an MSI property to be set based on the value of a burn engine expression.
7422 /// </summary>
7423 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7424 public class MsiProperty : ISchemaElement, ISetAttributes
7425 {
7426 -
7426 +
7427 private string nameField;
7428 -
7428 +
7429 private bool nameFieldSet;
7430 -
7430 +
7431 private string valueField;
7432 -
7432 +
7433 private bool valueFieldSet;
7434 -
7434 +
7435 private ISchemaElement parentElement;
7436 -
7436 +
7437 /// <summary>
7438 /// 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
7439 /// </summary>
@@ -7449,7 +7449,7 @@ namespace WixToolset.Harvesters.Serialize
7449 this.nameField = value;
7450 }
7451 }
7452 -
7452 +
7453 /// <summary>
7454 /// 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.
7455 /// </summary>
@@ -7465,7 +7465,7 @@ namespace WixToolset.Harvesters.Serialize
7465 this.valueField = value;
7466 }
7467 }
7468 -
7468 +
7469 public virtual ISchemaElement ParentElement
7470 {
7471 get
@@ -7477,7 +7477,7 @@ namespace WixToolset.Harvesters.Serialize
7477 this.parentElement = value;
7478 }
7479 }
7480 -
7480 +
7481 /// <summary>
7482 /// Processes this element and all child elements into an XmlWriter.
7483 /// </summary>
@@ -7498,7 +7498,7 @@ namespace WixToolset.Harvesters.Serialize
7498 }
7499 writer.WriteEndElement();
7500 }
7501 -
7501 +
7502 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7503 void ISetAttributes.SetAttribute(string name, string value)
7504 {
@@ -7518,20 +7518,20 @@ namespace WixToolset.Harvesters.Serialize
7518 }
7519 }
7520 }
7521 -
7521 +
7522 /// <summary>
7523 /// Specifies a patch included in the same bundle that is installed when the parent MSI package is installed.
7524 /// </summary>
7525 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7526 public class SlipstreamMsp : ISchemaElement, ISetAttributes
7527 {
7528 -
7528 +
7529 private string idField;
7530 -
7530 +
7531 private bool idFieldSet;
7532 -
7532 +
7533 private ISchemaElement parentElement;
7534 -
7534 +
7535 /// <summary>
7536 /// The identifier for a MspPackage in the bundle.
7537 /// </summary>
@@ -7547,7 +7547,7 @@ namespace WixToolset.Harvesters.Serialize
7547 this.idField = value;
7548 }
7549 }
7550 -
7550 +
7551 public virtual ISchemaElement ParentElement
7552 {
7553 get
@@ -7559,7 +7559,7 @@ namespace WixToolset.Harvesters.Serialize
7559 this.parentElement = value;
7560 }
7561 }
7562 -
7562 +
7563 /// <summary>
7564 /// Processes this element and all child elements into an XmlWriter.
7565 /// </summary>
@@ -7576,7 +7576,7 @@ namespace WixToolset.Harvesters.Serialize
7576 }
7577 writer.WriteEndElement();
7578 }
7579 -
7579 +
7580 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7581 void ISetAttributes.SetAttribute(string name, string value)
7582 {
@@ -7591,36 +7591,36 @@ namespace WixToolset.Harvesters.Serialize
7591 }
7592 }
7593 }
7594 -
7594 +
7595 /// <summary>
7596 /// Describes a burn engine variable to define.
7597 /// </summary>
7598 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7599 public class Variable : ISchemaElement, ISetAttributes
7600 {
7601 -
7601 +
7602 private YesNoType hiddenField;
7603 -
7603 +
7604 private bool hiddenFieldSet;
7605 -
7605 +
7606 private string nameField;
7607 -
7607 +
7608 private bool nameFieldSet;
7609 -
7609 +
7610 private YesNoType persistedField;
7611 -
7611 +
7612 private bool persistedFieldSet;
7613 -
7613 +
7614 private string valueField;
7615 -
7615 +
7616 private bool valueFieldSet;
7617 -
7617 +
7618 private TypeType typeField;
7619 -
7619 +
7620 private bool typeFieldSet;
7621 -
7621 +
7622 private ISchemaElement parentElement;
7623 -
7623 +
7624 /// <summary>
7625 /// Whether the value of the variable should be hidden.
7626 /// </summary>
@@ -7636,7 +7636,7 @@ namespace WixToolset.Harvesters.Serialize
7636 this.hiddenField = value;
7637 }
7638 }
7639 -
7639 +
7640 /// <summary>
7641 /// The name for the variable.
7642 /// </summary>
@@ -7652,7 +7652,7 @@ namespace WixToolset.Harvesters.Serialize
7652 this.nameField = value;
7653 }
7654 }
7655 -
7655 +
7656 /// <summary>
7657 /// Whether the variable should be persisted.
7658 /// </summary>
@@ -7668,7 +7668,7 @@ namespace WixToolset.Harvesters.Serialize
7668 this.persistedField = value;
7669 }
7670 }
7671 -
7671 +
7672 /// <summary>
7673 /// Starting value for the variable.
7674 /// </summary>
@@ -7684,7 +7684,7 @@ namespace WixToolset.Harvesters.Serialize
7684 this.valueField = value;
7685 }
7686 }
7687 -
7687 +
7688 /// <summary>
7689 /// Type of the variable, inferred from the value if not specified.
7690 /// </summary>
@@ -7700,7 +7700,7 @@ namespace WixToolset.Harvesters.Serialize
7700 this.typeField = value;
7701 }
7702 }
7703 -
7703 +
7704 public virtual ISchemaElement ParentElement
7705 {
7706 get
@@ -7712,7 +7712,7 @@ namespace WixToolset.Harvesters.Serialize
7712 this.parentElement = value;
7713 }
7714 }
7715 -
7715 +
7716 /// <summary>
7717 /// Parses a TypeType from a string.
7718 /// </summary>
@@ -7722,7 +7722,7 @@ namespace WixToolset.Harvesters.Serialize
7722 Variable.TryParseTypeType(value, out parsedValue);
7723 return parsedValue;
7724 }
7725 -
7725 +
7726 /// <summary>
7727 /// Tries to parse a TypeType from a string.
7728 /// </summary>
@@ -7758,7 +7758,7 @@ namespace WixToolset.Harvesters.Serialize
7758 }
7759 return true;
7760 }
7761 -
7761 +
7762 /// <summary>
7763 /// Processes this element and all child elements into an XmlWriter.
7764 /// </summary>
@@ -7816,7 +7816,7 @@ namespace WixToolset.Harvesters.Serialize
7816 }
7817 writer.WriteEndElement();
7818 }
7819 -
7819 +
7820 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7821 void ISetAttributes.SetAttribute(string name, string value)
7822 {
@@ -7850,57 +7850,57 @@ namespace WixToolset.Harvesters.Serialize
7850 this.typeFieldSet = true;
7851 }
7852 }
7853 -
7853 +
7854 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7855 public enum TypeType
7856 {
7857 -
7857 +
7858 IllegalValue = int.MaxValue,
7859 -
7859 +
7860 NotSet = -1,
7861 -
7861 +
7862 @string,
7863 -
7863 +
7864 numeric,
7865 -
7865 +
7866 version,
7867 }
7868 }
7869 -
7869 +
7870 /// <summary>
7871 /// Representation of a file that contains one or more files.
7872 /// </summary>
7873 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7874 public class Container : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
7875 {
7876 -
7876 +
7877 private ElementCollection children;
7878 -
7878 +
7879 private string downloadUrlField;
7880 -
7880 +
7881 private bool downloadUrlFieldSet;
7882 -
7882 +
7883 private string idField;
7884 -
7884 +
7885 private bool idFieldSet;
7886 -
7886 +
7887 private string nameField;
7888 -
7888 +
7889 private bool nameFieldSet;
7890 -
7890 +
7891 private BurnContainerType typeField;
7892 -
7892 +
7893 private bool typeFieldSet;
7894 -
7894 +
7895 private ISchemaElement parentElement;
7896 -
7896 +
7897 public Container()
7898 {
7899 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
7900 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
7901 this.children = childCollection0;
7902 }
7903 -
7903 +
7904 public virtual IEnumerable Children
7905 {
7906 get
@@ -7908,7 +7908,7 @@ namespace WixToolset.Harvesters.Serialize
7908 return this.children;
7909 }
7910 }
7911 -
7911 +
7912 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
7913 public virtual IEnumerable this[System.Type childType]
7914 {
@@ -7917,7 +7917,7 @@ namespace WixToolset.Harvesters.Serialize
7917 return this.children.Filter(childType);
7918 }
7919 }
7920 -
7920 +
7921 public string DownloadUrl
7922 {
7923 get
@@ -7930,7 +7930,7 @@ namespace WixToolset.Harvesters.Serialize
7930 this.downloadUrlField = value;
7931 }
7932 }
7933 -
7933 +
7934 /// <summary>
7935 /// The unique identifier for the container. If this attribute is not specified the Name attribute will be used.
7936 /// </summary>
@@ -7946,7 +7946,7 @@ namespace WixToolset.Harvesters.Serialize
7946 this.idField = value;
7947 }
7948 }
7949 -
7949 +
7950 /// <summary>
7951 /// The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle.
7952 /// </summary>
@@ -7962,7 +7962,7 @@ namespace WixToolset.Harvesters.Serialize
7962 this.nameField = value;
7963 }
7964 }
7965 -
7965 +
7966 /// <summary>
7967 /// Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If
7968 /// this attribute is not specified, the default is to create a detached container.
@@ -7979,7 +7979,7 @@ namespace WixToolset.Harvesters.Serialize
7979 this.typeField = value;
7980 }
7981 }
7982 -
7982 +
7983 public virtual ISchemaElement ParentElement
7984 {
7985 get
@@ -7991,7 +7991,7 @@ namespace WixToolset.Harvesters.Serialize
7991 this.parentElement = value;
7992 }
7993 }
7994 -
7994 +
7995 public virtual void AddChild(ISchemaElement child)
7996 {
7997 if ((null == child))
@@ -8001,7 +8001,7 @@ namespace WixToolset.Harvesters.Serialize
8001 this.children.AddElement(child);
8002 child.ParentElement = this;
8003 }
8004 -
8004 +
8005 public virtual void RemoveChild(ISchemaElement child)
8006 {
8007 if ((null == child))
@@ -8011,7 +8011,7 @@ namespace WixToolset.Harvesters.Serialize
8011 this.children.RemoveElement(child);
8012 child.ParentElement = null;
8013 }
8014 -
8014 +
8015 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8016 ISchemaElement ICreateChildren.CreateChild(string childName)
8017 {
@@ -8030,7 +8030,7 @@ namespace WixToolset.Harvesters.Serialize
8030 }
8031 return childValue;
8032 }
8033 -
8033 +
8034 /// <summary>
8035 /// Processes this element and all child elements into an XmlWriter.
8036 /// </summary>
@@ -8064,14 +8064,14 @@ namespace WixToolset.Harvesters.Serialize
8064 writer.WriteAttributeString("Type", "detached");
8065 }
8066 }
8067 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
8067 + for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();)
8068 {
8069 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
8070 childElement.OutputXml(writer);
8071 }
8072 writer.WriteEndElement();
8073 }
8074 -
8074 +
8075 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8076 void ISetAttributes.SetAttribute(string name, string value)
8077 {
@@ -8101,20 +8101,20 @@ namespace WixToolset.Harvesters.Serialize
8101 }
8102 }
8103 }
8104 -
8104 +
8105 /// <summary>
8106 /// Create a reference to an existing Container element.
8107 /// </summary>
8108 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8109 public class ContainerRef : ISchemaElement, ISetAttributes
8110 {
8111 -
8111 +
8112 private string idField;
8113 -
8113 +
8114 private bool idFieldSet;
8115 -
8115 +
8116 private ISchemaElement parentElement;
8117 -
8117 +
8118 /// <summary>
8119 /// The identifier of Container element to reference.
8120 /// </summary>
@@ -8130,7 +8130,7 @@ namespace WixToolset.Harvesters.Serialize
8130 this.idField = value;
8131 }
8132 }
8133 -
8133 +
8134 public virtual ISchemaElement ParentElement
8135 {
8136 get
@@ -8142,7 +8142,7 @@ namespace WixToolset.Harvesters.Serialize
8142 this.parentElement = value;
8143 }
8144 }
8145 -
8145 +
8146 /// <summary>
8147 /// Processes this element and all child elements into an XmlWriter.
8148 /// </summary>
@@ -8159,7 +8159,7 @@ namespace WixToolset.Harvesters.Serialize
8159 }
8160 writer.WriteEndElement();
8161 }
8162 -
8162 +
8163 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8164 void ISetAttributes.SetAttribute(string name, string value)
8165 {
@@ -8174,24 +8174,24 @@ namespace WixToolset.Harvesters.Serialize
8174 }
8175 }
8176 }
8177 -
8177 +
8178 /// <summary>
8179 /// Describes map of exit code returned from executable package to a bootstrapper behavior.
8180 /// </summary>
8181 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8182 public class ExitCode : ISchemaElement, ISetAttributes
8183 {
8184 -
8184 +
8185 private int valueField;
8186 -
8186 +
8187 private bool valueFieldSet;
8188 -
8188 +
8189 private BehaviorType behaviorField;
8190 -
8190 +
8191 private bool behaviorFieldSet;
8192 -
8192 +
8193 private ISchemaElement parentElement;
8194 -
8194 +
8195 /// <summary>
8196 /// Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior.
8197 /// </summary>
@@ -8207,7 +8207,7 @@ namespace WixToolset.Harvesters.Serialize
8207 this.valueField = value;
8208 }
8209 }
8210 -
8210 +
8211 /// <summary>
8212 /// Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot.
8213 /// </summary>
@@ -8223,7 +8223,7 @@ namespace WixToolset.Harvesters.Serialize
8223 this.behaviorField = value;
8224 }
8225 }
8226 -
8226 +
8227 public virtual ISchemaElement ParentElement
8228 {
8229 get
@@ -8235,7 +8235,7 @@ namespace WixToolset.Harvesters.Serialize
8235 this.parentElement = value;
8236 }
8237 }
8238 -
8238 +
8239 /// <summary>
8240 /// Parses a BehaviorType from a string.
8241 /// </summary>
@@ -8245,7 +8245,7 @@ namespace WixToolset.Harvesters.Serialize
8245 ExitCode.TryParseBehaviorType(value, out parsedValue);
8246 return parsedValue;
8247 }
8248 -
8248 +
8249 /// <summary>
8250 /// Tries to parse a BehaviorType from a string.
8251 /// </summary>
@@ -8288,7 +8288,7 @@ namespace WixToolset.Harvesters.Serialize
8288 }
8289 return true;
8290 }
8291 -
8291 +
8292 /// <summary>
8293 /// Processes this element and all child elements into an XmlWriter.
8294 /// </summary>
@@ -8324,7 +8324,7 @@ namespace WixToolset.Harvesters.Serialize
8324 }
8325 writer.WriteEndElement();
8326 }
8327 -
8327 +
8328 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8329 void ISetAttributes.SetAttribute(string name, string value)
8330 {
@@ -8343,50 +8343,50 @@ namespace WixToolset.Harvesters.Serialize
8343 this.behaviorFieldSet = true;
8344 }
8345 }
8346 -
8346 +
8347 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8348 public enum BehaviorType
8349 {
8350 -
8350 +
8351 IllegalValue = int.MaxValue,
8352 -
8352 +
8353 NotSet = -1,
8354 -
8354 +
8355 success,
8356 -
8356 +
8357 error,
8358 -
8358 +
8359 scheduleReboot,
8360 -
8360 +
8361 forceReboot,
8362 }
8363 }
8364 -
8364 +
8365 /// <summary>
8366 /// Describes additional, conditional command-line arguments for an ExePackage.
8367 /// </summary>
8368 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8369 public class CommandLine : ISchemaElement, ISetAttributes
8370 {
8371 -
8371 +
8372 private string installArgumentField;
8373 -
8373 +
8374 private bool installArgumentFieldSet;
8375 -
8375 +
8376 private string uninstallArgumentField;
8377 -
8377 +
8378 private bool uninstallArgumentFieldSet;
8379 -
8379 +
8380 private string repairArgumentField;
8381 -
8381 +
8382 private bool repairArgumentFieldSet;
8383 -
8383 +
8384 private string conditionField;
8385 -
8385 +
8386 private bool conditionFieldSet;
8387 -
8387 +
8388 private ISchemaElement parentElement;
8389 -
8389 +
8390 /// <summary>
8391 /// Additional command-line arguments to apply during package installation if Condition is true.
8392 /// </summary>
@@ -8402,7 +8402,7 @@ namespace WixToolset.Harvesters.Serialize
8402 this.installArgumentField = value;
8403 }
8404 }
8405 -
8405 +
8406 /// <summary>
8407 /// Additional command-line arguments to apply during package uninstallation if Condition is true.
8408 /// </summary>
@@ -8418,7 +8418,7 @@ namespace WixToolset.Harvesters.Serialize
8418 this.uninstallArgumentField = value;
8419 }
8420 }
8421 -
8421 +
8422 /// <summary>
8423 /// Additional command-line arguments to apply during package repair if Condition is true.
8424 /// </summary>
@@ -8434,7 +8434,7 @@ namespace WixToolset.Harvesters.Serialize
8434 this.repairArgumentField = value;
8435 }
8436 }
8437 -
8437 +
8438 /// <summary>
8439 /// The condition that controls whether the command-line arguments specified in the
8440 /// InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the
@@ -8455,7 +8455,7 @@ namespace WixToolset.Harvesters.Serialize
8455 this.conditionField = value;
8456 }
8457 }
8458 -
8458 +
8459 public virtual ISchemaElement ParentElement
8460 {
8461 get
@@ -8467,7 +8467,7 @@ namespace WixToolset.Harvesters.Serialize
8467 this.parentElement = value;
8468 }
8469 }
8470 -
8470 +
8471 /// <summary>
8472 /// Processes this element and all child elements into an XmlWriter.
8473 /// </summary>
@@ -8496,7 +8496,7 @@ namespace WixToolset.Harvesters.Serialize
8496 }
8497 writer.WriteEndElement();
8498 }
8499 -
8499 +
8500 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8501 void ISetAttributes.SetAttribute(string name, string value)
8502 {
@@ -8526,40 +8526,40 @@ namespace WixToolset.Harvesters.Serialize
8526 }
8527 }
8528 }
8529 -
8529 +
8530 /// <summary>
8531 /// Describes a payload to a bootstrapper.
8532 /// </summary>
8533 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8534 public class Payload : ISchemaElement, ISetAttributes
8535 {
8536 -
8536 +
8537 private string idField;
8538 -
8538 +
8539 private bool idFieldSet;
8540 -
8540 +
8541 private YesNoDefaultType compressedField;
8542 -
8542 +
8543 private bool compressedFieldSet;
8544 -
8544 +
8545 private string sourceFileField;
8546 -
8546 +
8547 private bool sourceFileFieldSet;
8548 -
8548 +
8549 private string nameField;
8550 -
8550 +
8551 private bool nameFieldSet;
8552 -
8552 +
8553 private string downloadUrlField;
8554 -
8554 +
8555 private bool downloadUrlFieldSet;
8556 -
8556 +
8557 private YesNoType enableSignatureVerificationField;
8558 -
8558 +
8559 private bool enableSignatureVerificationFieldSet;
8560 -
8560 +
8561 private ISchemaElement parentElement;
8562 -
8562 +
8563 /// <summary>
8564 /// The identifier of Payload element.
8565 /// </summary>
@@ -8575,7 +8575,7 @@ namespace WixToolset.Harvesters.Serialize
8575 this.idField = value;
8576 }
8577 }
8578 -
8578 +
8579 /// <summary>
8580 /// Whether the payload should be embedded in a container or left as an external payload.
8581 /// </summary>
@@ -8591,7 +8591,7 @@ namespace WixToolset.Harvesters.Serialize
8591 this.compressedField = value;
8592 }
8593 }
8594 -
8594 +
8595 /// <summary>
8596 /// Location of the source file.
8597 /// </summary>
@@ -8607,7 +8607,7 @@ namespace WixToolset.Harvesters.Serialize
8607 this.sourceFileField = value;
8608 }
8609 }
8610 -
8610 +
8611 /// <summary>
8612 /// The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed.
8613 /// </summary>
@@ -8623,7 +8623,7 @@ namespace WixToolset.Harvesters.Serialize
8623 this.nameField = value;
8624 }
8625 }
8626 -
8626 +
8627 public string DownloadUrl

This file is too large to show in full.

src/tools/heat/UtilMutator.cs
+3 -5
@@ -398,8 +398,7 @@ namespace WixToolset.Harvesters
398 this.fragments.Add(String.Concat("Component:", (null != component.Id ? component.Id : this.fragments.Count.ToString())), fragment);
399
400 // create a new DirectoryRef
401 - Wix.DirectoryRef directoryRef = new Wix.DirectoryRef();
402 - directoryRef.Id = directory.Id;
401 + var directoryRef = DirectoryHelper.CreateDirectoryReference(directory.Id);
402 fragment.AddChild(directoryRef);
403
404 // move the Component from the the Directory to the DirectoryRef
@@ -438,7 +437,7 @@ namespace WixToolset.Harvesters
437 {
438 if (directory.ParentElement is Wix.Directory)
439 {
441 - Wix.Directory parentDirectory = (Wix.Directory)directory.ParentElement;
440 + var parentDirectory = (Wix.DirectoryBase)directory.ParentElement;
441
442 // parent directory must have an identifier to create a reference to it
443 if (null == parentDirectory.Id)
@@ -451,8 +450,7 @@ namespace WixToolset.Harvesters
450 this.fragments.Add(String.Concat("Directory:", ("TARGETDIR" == directory.Id ? null : (null != directory.Id ? directory.Id : this.fragments.Count.ToString()))), fragment);
451
452 // create a new DirectoryRef
454 - Wix.DirectoryRef directoryRef = new Wix.DirectoryRef();
455 - directoryRef.Id = parentDirectory.Id;
453 + var directoryRef = DirectoryHelper.CreateDirectoryReference(parentDirectory.Id);
454 fragment.AddChild(directoryRef);
455
456 // move the Directory from the parent Directory to DirectoryRef
src/tools/heat/VSProjectHarvester.cs
+7 -5
@@ -334,22 +334,24 @@ namespace WixToolset.Harvesters
334 }
335 else
336 {
337 - Wix.DirectoryRef directoryRef = new Wix.DirectoryRef();
338 - harvestParent = directoryRef;
337 + string directoryRefId;
338
339 if (!String.IsNullOrEmpty(this.directoryIds))
340 {
342 - directoryRef.Id = this.directoryIds;
341 + directoryRefId = this.directoryIds;
342 }
343 else if (this.setUniqueIdentifiers)
344 {
346 - directoryRef.Id = String.Format(CultureInfo.InvariantCulture, DirectoryIdFormat, sanitizedProjectName, pog.Name);
345 + directoryRefId = String.Format(CultureInfo.InvariantCulture, DirectoryIdFormat, sanitizedProjectName, pog.Name);
346 }
347 else
348 {
350 - directoryRef.Id = this.Core.CreateIdentifierFromFilename(String.Format(CultureInfo.InvariantCulture, DirectoryIdFormat, sanitizedProjectName, pog.Name));
349 + directoryRefId = this.Core.CreateIdentifierFromFilename(String.Format(CultureInfo.InvariantCulture, DirectoryIdFormat, sanitizedProjectName, pog.Name));
350 }
351
352 + var directoryRef = DirectoryHelper.CreateDirectoryReference(directoryRefId);
353 + harvestParent = directoryRef;
354 +
355 this.directoryRefSeed = this.Core.GenerateIdentifier(DirectoryPrefix, this.projectGUID, pog.Name);
356 }
357
src/tools/test/WixToolsetTest.Heat/HeatFixture.cs new
+136
@@ -0,0 +1,136 @@
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 +
3 +namespace WixToolsetTest.Heat
4 +{
5 + using System.IO;
6 + using System.Linq;
7 + using WixBuildTools.TestSupport;
8 + using Xunit;
9 +
10 + public class HeatFixture
11 + {
12 + [Fact]
13 + public void CanHarvestSimpleDirectory()
14 + {
15 + var folder = TestData.Get("TestData", "SingleFile");
16 +
17 + using (var fs = new DisposableFileSystem())
18 + {
19 + var outputPath = Path.Combine(fs.GetFolder(), "out.wxs");
20 +
21 + var args = new[]
22 + {
23 + "dir", folder,
24 + "-o", outputPath
25 + };
26 +
27 + var result = HeatRunner.Execute(args);
28 + result.AssertSuccess();
29 +
30 + var wxs = File.ReadAllLines(outputPath).Select(s => s.Replace("\"", "'")).ToArray();
31 + WixAssert.CompareLineByLine(new[]
32 + {
33 + "<?xml version='1.0' encoding='utf-8'?>",
34 + "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
35 + " <Fragment>",
36 + " <StandardDirectory Id='TARGETDIR'>",
37 + " <Directory Id='dirwsJn0Cqs9KdlDSFdQsu9ygYvMF8' Name='SingleFile' />",
38 + " </StandardDirectory>",
39 + " </Fragment>",
40 + " <Fragment>",
41 + " <DirectoryRef Id='dirwsJn0Cqs9KdlDSFdQsu9ygYvMF8'>",
42 + " <Component Id='cmp0i3dThrp4nheCteEmXvHxBDa_VE' Guid='PUT-GUID-HERE'>",
43 + " <File Id='filziMcXYgrmcbVF8PuTUfIB9Vgqo0' KeyPath='yes' Source='SourceDir\\a.txt' />",
44 + " </Component>",
45 + " </DirectoryRef>",
46 + " </Fragment>",
47 + "</Wix>",
48 + }, wxs);
49 + }
50 + }
51 +
52 + [Fact]
53 + public void CanHarvestSimpleDirectoryToInstallFolder()
54 + {
55 + var folder = TestData.Get("TestData", "SingleFile");
56 +
57 + using (var fs = new DisposableFileSystem())
58 + {
59 + var outputPath = Path.Combine(fs.GetFolder(), "out.wxs");
60 +
61 + var args = new[]
62 + {
63 + "dir", folder,
64 + "-dr", "INSTALLFOLDER",
65 + "-o", outputPath
66 + };
67 +
68 + var result = HeatRunner.Execute(args);
69 + result.AssertSuccess();
70 +
71 + var wxs = File.ReadAllLines(outputPath).Select(s => s.Replace("\"", "'")).ToArray();
72 + WixAssert.CompareLineByLine(new[]
73 + {
74 + "<?xml version='1.0' encoding='utf-8'?>",
75 + "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
76 + " <Fragment>",
77 + " <DirectoryRef Id='INSTALLFOLDER'>",
78 + " <Directory Id='dirlooNEIrtEBL2w_RhFEIgiKcUlxE' Name='SingleFile' />",
79 + " </DirectoryRef>",
80 + " </Fragment>",
81 + " <Fragment>",
82 + " <DirectoryRef Id='dirlooNEIrtEBL2w_RhFEIgiKcUlxE'>",
83 + " <Component Id='cmpxHVF6oXohc0EWgRphmYZvw5.GGU' Guid='PUT-GUID-HERE'>",
84 + " <File Id='filk_7KUAfL4VfzxSRsGFf_XOBHln0' KeyPath='yes' Source='SourceDir\\a.txt' />",
85 + " </Component>",
86 + " </DirectoryRef>",
87 + " </Fragment>",
88 + "</Wix>",
89 + }, wxs);
90 + }
91 + }
92 +
93 + [Fact]
94 + public void CanHarvestFile()
95 + {
96 + var folder = TestData.Get("TestData", "SingleFile");
97 +
98 + using (var fs = new DisposableFileSystem())
99 + {
100 + var outputPath = Path.Combine(fs.GetFolder(), "out.wxs");
101 +
102 + var args = new[]
103 + {
104 + "file", Path.Combine(folder, "a.txt"),
105 + "-cg", "GroupA",
106 + "-dr", "ProgramFiles6432Folder",
107 + "-o", outputPath
108 +
109 + };
110 +
111 + var result = HeatRunner.Execute(args);
112 + result.AssertSuccess();
113 +
114 + var wxs = File.ReadAllLines(outputPath).Select(s => s.Replace("\"", "'")).ToArray();
115 + WixAssert.CompareLineByLine(new[]
116 + {
117 + "<?xml version='1.0' encoding='utf-8'?>",
118 + "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
119 + " <Fragment>",
120 + " <StandardDirectory Id='ProgramFiles6432Folder'>",
121 + " <Directory Id='dirl6r_Yc0gvMUEUVe5rioOOIIasoU' Name='SingleFile' />",
122 + " </StandardDirectory>",
123 + " </Fragment>",
124 + " <Fragment>",
125 + " <ComponentGroup Id='GroupA'>",
126 + " <Component Id='cmpfBcW61_XzosRWK3EzUTBtJrcJD8' Directory='dirl6r_Yc0gvMUEUVe5rioOOIIasoU' Guid='PUT-GUID-HERE'>",
127 + " <File Id='filKrZgaIOSKpNZXFnezZc9X.LKGpw' KeyPath='yes' Source='SourceDir\\SingleFile\\a.txt' />",
128 + " </Component>",
129 + " </ComponentGroup>",
130 + " </Fragment>",
131 + "</Wix>",
132 + }, wxs);
133 + }
134 + }
135 + }
136 +}
src/tools/test/WixToolsetTest.Heat/HeatRunner.cs
+4 -13
@@ -1,17 +1,14 @@
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 -namespace WixToolsetTest.Harvesters
3 +namespace WixToolsetTest.Heat
4 {
5 - using System;
5 using System.Collections.Generic;
7 - using System.Threading;
6 using System.Threading.Tasks;
7 using WixToolset.Core;
8 using WixToolset.Core.TestPackage;
9 using WixToolset.Data;
12 - using WixToolset.Extensibility.Data;
10 using WixToolset.Extensibility.Services;
14 - using WixToolset.Harvesters;
11 + using WixToolset.Tools.Heat;
12
13 /// <summary>
14 /// Utility class to emulate heat.exe.
@@ -66,8 +63,6 @@ namespace WixToolsetTest.Harvesters
63 /// <returns></returns>
64 public static Task<int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List<Message> messages, bool warningsAsErrors = true)
65 {
69 - coreProvider.AddBundleBackend();
70 -
66 var listener = new TestMessageListener();
67
68 messages = listener.Messages;
@@ -80,12 +75,8 @@ namespace WixToolsetTest.Harvesters
75 messaging.WarningsAsError = true;
76 }
77
83 - var arguments = coreProvider.GetService<ICommandLineArguments>();
84 - arguments.Populate(args);
85 -
86 - var commandLine = HeatCommandLineFactory.CreateCommandLine(coreProvider);
87 - var command = commandLine.ParseStandardCommandLine(arguments);
88 - return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1);
78 + var program = new Program();
79 + return program.Run(coreProvider, listener, args);
80 }
81 }
82 }
src/tools/test/WixToolsetTest.Heat/TestData/SingleFile/a.txt new
+1
@@ -0,0 +1 @@
1 +This is a.txt
src/tools/test/WixToolsetTest.Heat/WixToolsetTest.Heat.csproj
+12 -2
@@ -3,13 +3,23 @@
3
4 <Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 - <TargetFramework>netcoreapp3.1</TargetFramework>
6 + <TargetFramework>net472</TargetFramework>
7 <IsPackable>false</IsPackable>
8 + <DebugType>embedded</DebugType>
9 + <DefaultItemExcludes>TestData\**;$(DefaultItemExcludes)</DefaultItemExcludes>
10 <SignOutput>false</SignOutput>
11 </PropertyGroup>
12
13 <ItemGroup>
12 - <PackageReference Include="WixBuildTools.TestSupport" />
14 + <Content Include="TestData\**" CopyToOutputDirectory="PreserveNewest" />
15 + </ItemGroup>
16 +
17 + <ItemGroup>
18 + <ProjectReference Include="..\..\heat\heat.csproj" />
19 + </ItemGroup>
20 +
21 + <ItemGroup>
22 + <PackageReference Include="WixToolset.Core.TestPackage" />
23 </ItemGroup>
24
25 <ItemGroup>
src/tools/tools.cmd
+1
@@ -24,6 +24,7 @@ msbuild -Restore tools.sln -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L
24 msbuild publish_t.proj -p:Configuration=%_C% -nologo -m -warnaserror -bl:%_L%\tools_publish.binlog || exit /b
25
26 :: Test
27 +dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.Heat -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.Heat.trx" || exit /b
28 dotnet test -c %_C% --no-build --nologo test\WixToolsetTest.HeatTasks -l "trx;LogFileName=%_L%\TestResults\WixToolsetTest.HeatTasks.trx" || exit /b
29
30 :: Pack
src/tools/tools.sln
+11
@@ -16,6 +16,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.HeatTasks", "Wix
16 EndProject
17 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.HeatTasks", "test\WixToolsetTest.HeatTasks\WixToolsetTest.HeatTasks.csproj", "{3FB7F972-31A6-4929-B6BF-EACEC659A7D3}"
18 EndProject
19 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Heat", "test\WixToolsetTest.Heat\WixToolsetTest.Heat.csproj", "{AF77C94C-5B4B-45E7-A642-A3C1F94F106D}"
20 +EndProject
21 Global
22 GlobalSection(SolutionConfigurationPlatforms) = preSolution
23 Debug|Any CPU = Debug|Any CPU
@@ -72,12 +74,21 @@ Global
74 {3FB7F972-31A6-4929-B6BF-EACEC659A7D3}.Release|Any CPU.Build.0 = Release|Any CPU
75 {3FB7F972-31A6-4929-B6BF-EACEC659A7D3}.Release|x86.ActiveCfg = Release|Any CPU
76 {3FB7F972-31A6-4929-B6BF-EACEC659A7D3}.Release|x86.Build.0 = Release|Any CPU
77 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
78 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Debug|Any CPU.Build.0 = Debug|Any CPU
79 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Debug|x86.ActiveCfg = Debug|Any CPU
80 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Debug|x86.Build.0 = Debug|Any CPU
81 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Release|Any CPU.ActiveCfg = Release|Any CPU
82 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Release|Any CPU.Build.0 = Release|Any CPU
83 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Release|x86.ActiveCfg = Release|Any CPU
84 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D}.Release|x86.Build.0 = Release|Any CPU
85 EndGlobalSection
86 GlobalSection(SolutionProperties) = preSolution
87 HideSolutionNode = FALSE
88 EndGlobalSection
89 GlobalSection(NestedProjects) = preSolution
90 {3FB7F972-31A6-4929-B6BF-EACEC659A7D3} = {F7A815A5-37AE-4EC4-A6D6-B29565055668}
91 + {AF77C94C-5B4B-45E7-A642-A3C1F94F106D} = {F7A815A5-37AE-4EC4-A6D6-B29565055668}
92 EndGlobalSection
93 GlobalSection(ExtensibilityGlobals) = postSolution
94 SolutionGuid = {537F1116-39FE-4AED-A9A2-35030E5750D5}