main
cs 57,762 lines 1.78 MB
Raw
Large file — syntax highlighting disabled.
1 //------------------------------------------------------------------------------
2 // <auto-generated>
3 // This code was generated by a tool.
4 // Runtime Version:4.0.30319.42000
5 //
6 // Changes to this file may cause incorrect behavior and will be lost if
7 // the code is regenerated.
8 // </auto-generated>
9 //------------------------------------------------------------------------------
10
11 #pragma warning disable 1591 // TODO: add documentation
12 namespace WixToolset.Harvesters.Serialize
13 {
14 using System;
15 using System.CodeDom.Compiler;
16 using System.Collections;
17 using System.Diagnostics.CodeAnalysis;
18 using System.Globalization;
19 using System.Xml;
20
21 /// <summary>
22 /// Values of this type will either be "attached" or "detached".
23 /// </summary>
24 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
25 public enum BurnContainerType
26 {
27
28 IllegalValue = int.MaxValue,
29
30 NotSet = -1,
31
32 attached,
33
34 detached,
35 }
36
37 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38 public class Enums
39 {
40
41 /// <summary>
42 /// Parses a BurnContainerType from a string.
43 /// </summary>
44 public static BurnContainerType ParseBurnContainerType(string value)
45 {
46 BurnContainerType parsedValue;
47 Enums.TryParseBurnContainerType(value, out parsedValue);
48 return parsedValue;
49 }
50
51 /// <summary>
52 /// Tries to parse a BurnContainerType from a string.
53 /// </summary>
54 public static bool TryParseBurnContainerType(string value, out BurnContainerType parsedValue)
55 {
56 parsedValue = BurnContainerType.NotSet;
57 if (string.IsNullOrEmpty(value))
58 {
59 return false;
60 }
61 if (("attached" == value))
62 {
63 parsedValue = BurnContainerType.attached;
64 }
65 else
66 {
67 if (("detached" == value))
68 {
69 parsedValue = BurnContainerType.detached;
70 }
71 else
72 {
73 parsedValue = BurnContainerType.IllegalValue;
74 return false;
75 }
76 }
77 return true;
78 }
79
80 /// <summary>
81 /// Parses a BurnExeProtocolType from a string.
82 /// </summary>
83 public static BurnExeProtocolType ParseBurnExeProtocolType(string value)
84 {
85 BurnExeProtocolType parsedValue;
86 Enums.TryParseBurnExeProtocolType(value, out parsedValue);
87 return parsedValue;
88 }
89
90 /// <summary>
91 /// Tries to parse a BurnExeProtocolType from a string.
92 /// </summary>
93 public static bool TryParseBurnExeProtocolType(string value, out BurnExeProtocolType parsedValue)
94 {
95 parsedValue = BurnExeProtocolType.NotSet;
96 if (string.IsNullOrEmpty(value))
97 {
98 return false;
99 }
100 if (("none" == value))
101 {
102 parsedValue = BurnExeProtocolType.none;
103 }
104 else
105 {
106 if (("burn" == value))
107 {
108 parsedValue = BurnExeProtocolType.burn;
109 }
110 else
111 {
112 if (("netfx4" == value))
113 {
114 parsedValue = BurnExeProtocolType.netfx4;
115 }
116 else
117 {
118 parsedValue = BurnExeProtocolType.IllegalValue;
119 return false;
120 }
121 }
122 }
123 return true;
124 }
125
126 /// <summary>
127 /// Parses a YesNoType from a string.
128 /// </summary>
129 public static YesNoType ParseYesNoType(string value)
130 {
131 YesNoType parsedValue;
132 Enums.TryParseYesNoType(value, out parsedValue);
133 return parsedValue;
134 }
135
136 /// <summary>
137 /// Tries to parse a YesNoType from a string.
138 /// </summary>
139 public static bool TryParseYesNoType(string value, out YesNoType parsedValue)
140 {
141 parsedValue = YesNoType.NotSet;
142 if (string.IsNullOrEmpty(value))
143 {
144 return false;
145 }
146 if (("no" == value))
147 {
148 parsedValue = YesNoType.no;
149 }
150 else
151 {
152 if (("yes" == value))
153 {
154 parsedValue = YesNoType.yes;
155 }
156 else
157 {
158 parsedValue = YesNoType.IllegalValue;
159 return false;
160 }
161 }
162 return true;
163 }
164
165 /// <summary>
166 /// Parses a YesNoButtonType from a string.
167 /// </summary>
168 public static YesNoButtonType ParseYesNoButtonType(string value)
169 {
170 YesNoButtonType parsedValue;
171 Enums.TryParseYesNoButtonType(value, out parsedValue);
172 return parsedValue;
173 }
174
175 /// <summary>
176 /// Tries to parse a YesNoButtonType from a string.
177 /// </summary>
178 public static bool TryParseYesNoButtonType(string value, out YesNoButtonType parsedValue)
179 {
180 parsedValue = YesNoButtonType.NotSet;
181 if (string.IsNullOrEmpty(value))
182 {
183 return false;
184 }
185 if (("no" == value))
186 {
187 parsedValue = YesNoButtonType.no;
188 }
189 else
190 {
191 if (("yes" == value))
192 {
193 parsedValue = YesNoButtonType.yes;
194 }
195 else
196 {
197 if (("button" == value))
198 {
199 parsedValue = YesNoButtonType.button;
200 }
201 else
202 {
203 parsedValue = YesNoButtonType.IllegalValue;
204 return false;
205 }
206 }
207 }
208 return true;
209 }
210
211 /// <summary>
212 /// Parses a YesNoDefaultType from a string.
213 /// </summary>
214 public static YesNoDefaultType ParseYesNoDefaultType(string value)
215 {
216 YesNoDefaultType parsedValue;
217 Enums.TryParseYesNoDefaultType(value, out parsedValue);
218 return parsedValue;
219 }
220
221 /// <summary>
222 /// Tries to parse a YesNoDefaultType from a string.
223 /// </summary>
224 public static bool TryParseYesNoDefaultType(string value, out YesNoDefaultType parsedValue)
225 {
226 parsedValue = YesNoDefaultType.NotSet;
227 if (string.IsNullOrEmpty(value))
228 {
229 return false;
230 }
231 if (("default" == value))
232 {
233 parsedValue = YesNoDefaultType.@default;
234 }
235 else
236 {
237 if (("no" == value))
238 {
239 parsedValue = YesNoDefaultType.no;
240 }
241 else
242 {
243 if (("yes" == value))
244 {
245 parsedValue = YesNoDefaultType.yes;
246 }
247 else
248 {
249 parsedValue = YesNoDefaultType.IllegalValue;
250 return false;
251 }
252 }
253 }
254 return true;
255 }
256
257 /// <summary>
258 /// Parses a BundleCacheType from a string.
259 /// </summary>
260 public static BundleCacheType ParseBundleCacheType(string value)
261 {
262 Enums.TryBundleCacheType(value, out var parsedValue);
263 return parsedValue;
264 }
265
266 /// <summary>
267 /// Tries to parse a YesNoAlwaysType from a string.
268 /// </summary>
269 public static bool TryBundleCacheType(string value, out BundleCacheType parsedValue)
270 {
271 parsedValue = BundleCacheType.NotSet;
272 if (string.IsNullOrEmpty(value))
273 {
274 return false;
275 }
276
277 if (("force" == value))
278 {
279 parsedValue = BundleCacheType.force;
280 }
281 else
282 {
283 if (("remove" == value))
284 {
285 parsedValue = BundleCacheType.remove;
286 }
287 else
288 {
289 if (("keep" == value))
290 {
291 parsedValue = BundleCacheType.keep;
292 }
293 else
294 {
295 return false;
296 }
297 }
298 }
299 return true;
300 }
301
302 /// <summary>
303 /// Parses a RegistryRootType from a string.
304 /// </summary>
305 public static RegistryRootType ParseRegistryRootType(string value)
306 {
307 RegistryRootType parsedValue;
308 Enums.TryParseRegistryRootType(value, out parsedValue);
309 return parsedValue;
310 }
311
312 /// <summary>
313 /// Tries to parse a RegistryRootType from a string.
314 /// </summary>
315 public static bool TryParseRegistryRootType(string value, out RegistryRootType parsedValue)
316 {
317 parsedValue = RegistryRootType.NotSet;
318 if (string.IsNullOrEmpty(value))
319 {
320 return false;
321 }
322 if (("HKMU" == value))
323 {
324 parsedValue = RegistryRootType.HKMU;
325 }
326 else
327 {
328 if (("HKCR" == value))
329 {
330 parsedValue = RegistryRootType.HKCR;
331 }
332 else
333 {
334 if (("HKCU" == value))
335 {
336 parsedValue = RegistryRootType.HKCU;
337 }
338 else
339 {
340 if (("HKLM" == value))
341 {
342 parsedValue = RegistryRootType.HKLM;
343 }
344 else
345 {
346 if (("HKU" == value))
347 {
348 parsedValue = RegistryRootType.HKU;
349 }
350 else
351 {
352 parsedValue = RegistryRootType.IllegalValue;
353 return false;
354 }
355 }
356 }
357 }
358 }
359 return true;
360 }
361
362 /// <summary>
363 /// Parses a ExitType from a string.
364 /// </summary>
365 public static ExitType ParseExitType(string value)
366 {
367 ExitType parsedValue;
368 Enums.TryParseExitType(value, out parsedValue);
369 return parsedValue;
370 }
371
372 /// <summary>
373 /// Tries to parse a ExitType from a string.
374 /// </summary>
375 public static bool TryParseExitType(string value, out ExitType parsedValue)
376 {
377 parsedValue = ExitType.NotSet;
378 if (string.IsNullOrEmpty(value))
379 {
380 return false;
381 }
382 if (("success" == value))
383 {
384 parsedValue = ExitType.success;
385 }
386 else
387 {
388 if (("cancel" == value))
389 {
390 parsedValue = ExitType.cancel;
391 }
392 else
393 {
394 if (("error" == value))
395 {
396 parsedValue = ExitType.error;
397 }
398 else
399 {
400 if (("suspend" == value))
401 {
402 parsedValue = ExitType.suspend;
403 }
404 else
405 {
406 parsedValue = ExitType.IllegalValue;
407 return false;
408 }
409 }
410 }
411 }
412 return true;
413 }
414
415 /// <summary>
416 /// Parses a InstallUninstallType from a string.
417 /// </summary>
418 public static InstallUninstallType ParseInstallUninstallType(string value)
419 {
420 InstallUninstallType parsedValue;
421 Enums.TryParseInstallUninstallType(value, out parsedValue);
422 return parsedValue;
423 }
424
425 /// <summary>
426 /// Tries to parse a InstallUninstallType from a string.
427 /// </summary>
428 public static bool TryParseInstallUninstallType(string value, out InstallUninstallType parsedValue)
429 {
430 parsedValue = InstallUninstallType.NotSet;
431 if (string.IsNullOrEmpty(value))
432 {
433 return false;
434 }
435 if (("install" == value))
436 {
437 parsedValue = InstallUninstallType.install;
438 }
439 else
440 {
441 if (("uninstall" == value))
442 {
443 parsedValue = InstallUninstallType.uninstall;
444 }
445 else
446 {
447 if (("both" == value))
448 {
449 parsedValue = InstallUninstallType.both;
450 }
451 else
452 {
453 parsedValue = InstallUninstallType.IllegalValue;
454 return false;
455 }
456 }
457 }
458 return true;
459 }
460
461 /// <summary>
462 /// Parses a SequenceType from a string.
463 /// </summary>
464 public static SequenceType ParseSequenceType(string value)
465 {
466 SequenceType parsedValue;
467 Enums.TryParseSequenceType(value, out parsedValue);
468 return parsedValue;
469 }
470
471 /// <summary>
472 /// Tries to parse a SequenceType from a string.
473 /// </summary>
474 public static bool TryParseSequenceType(string value, out SequenceType parsedValue)
475 {
476 parsedValue = SequenceType.NotSet;
477 if (string.IsNullOrEmpty(value))
478 {
479 return false;
480 }
481 if (("both" == value))
482 {
483 parsedValue = SequenceType.both;
484 }
485 else
486 {
487 if (("first" == value))
488 {
489 parsedValue = SequenceType.first;
490 }
491 else
492 {
493 if (("execute" == value))
494 {
495 parsedValue = SequenceType.execute;
496 }
497 else
498 {
499 if (("ui" == value))
500 {
501 parsedValue = SequenceType.ui;
502 }
503 else
504 {
505 parsedValue = SequenceType.IllegalValue;
506 return false;
507 }
508 }
509 }
510 }
511 return true;
512 }
513
514 /// <summary>
515 /// Parses a CompressionLevelType from a string.
516 /// </summary>
517 public static CompressionLevelType ParseCompressionLevelType(string value)
518 {
519 CompressionLevelType parsedValue;
520 Enums.TryParseCompressionLevelType(value, out parsedValue);
521 return parsedValue;
522 }
523
524 /// <summary>
525 /// Tries to parse a CompressionLevelType from a string.
526 /// </summary>
527 public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue)
528 {
529 parsedValue = CompressionLevelType.NotSet;
530 if (string.IsNullOrEmpty(value))
531 {
532 return false;
533 }
534 if (("high" == value))
535 {
536 parsedValue = CompressionLevelType.high;
537 }
538 else
539 {
540 if (("low" == value))
541 {
542 parsedValue = CompressionLevelType.low;
543 }
544 else
545 {
546 if (("medium" == value))
547 {
548 parsedValue = CompressionLevelType.medium;
549 }
550 else
551 {
552 if (("mszip" == value))
553 {
554 parsedValue = CompressionLevelType.mszip;
555 }
556 else
557 {
558 if (("none" == value))
559 {
560 parsedValue = CompressionLevelType.none;
561 }
562 else
563 {
564 parsedValue = CompressionLevelType.IllegalValue;
565 return false;
566 }
567 }
568 }
569 }
570 }
571 return true;
572 }
573 }
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
582 IllegalValue = int.MaxValue,
583
584 NotSet = -1,
585
586 /// <summary>
587 /// The executable package does not support a communication protocol.
588 /// </summary>
589 none,
590
591 /// <summary>
592 /// The executable package is another Burn bundle and supports the Burn communication protocol.
593 /// </summary>
594 burn,
595
596 /// <summary>
597 /// The executable package implements the .NET Framework v4.0 communication protocol.
598 /// </summary>
599 netfx4,
600 }
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
609 IllegalValue = int.MaxValue,
610
611 NotSet = -1,
612
613 no,
614
615 yes,
616 }
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
625 IllegalValue = int.MaxValue,
626
627 NotSet = -1,
628
629 no,
630
631 yes,
632
633 button,
634 }
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
643 IllegalValue = int.MaxValue,
644
645 NotSet = -1,
646
647 @default,
648
649 no,
650
651 yes,
652 }
653
654 /// <summary>
655 /// Values of this type will either be "always", "yes", or "no".
656 /// </summary>
657 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
658 public enum BundleCacheType
659 {
660 NotSet = -1,
661
662 force,
663
664 remove,
665
666 keep,
667 }
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
676 IllegalValue = int.MaxValue,
677
678 NotSet = -1,
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
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
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
699 /// <summary>
700 /// Operation occurs under HKEY_LOCAL_MACHINE.
701 /// </summary>
702 HKLM,
703
704 /// <summary>
705 /// Operation occurs under HKEY_USERS.
706 /// </summary>
707 HKU,
708 }
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.
713 /// </summary>
714 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
715 public enum ExitType
716 {
717
718 IllegalValue = int.MaxValue,
719
720 NotSet = -1,
721
722 success,
723
724 cancel,
725
726 error,
727
728 suspend,
729 }
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
738 IllegalValue = int.MaxValue,
739
740 NotSet = -1,
741
742 /// <summary>
743 /// The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
744 /// </summary>
745 install,
746
747 /// <summary>
748 /// The action should happen during uninstall (msiInstallStateAbsent).
749 /// </summary>
750 uninstall,
751
752 /// <summary>
753 /// The action should happen during both install and uninstall.
754 /// </summary>
755 both,
756 }
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
765 IllegalValue = int.MaxValue,
766
767 NotSet = -1,
768
769 /// <summary>
770 /// Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
771 /// </summary>
772 both,
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
779 /// <summary>
780 /// Schedules the assignment only in the the InstallExecuteSequence.
781 /// </summary>
782 execute,
783
784 /// <summary>
785 /// Schedules the assignment only in the the InstallUISequence.
786 /// </summary>
787 ui,
788 }
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
797 IllegalValue = int.MaxValue,
798
799 NotSet = -1,
800
801 high,
802
803 low,
804
805 medium,
806
807 mszip,
808
809 none,
810 }
811
812 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
813 public abstract class ActionModuleSequenceType : ISchemaElement, ISetAttributes
814 {
815
816 private string afterField;
817
818 private bool afterFieldSet;
819
820 private string beforeField;
821
822 private bool beforeFieldSet;
823
824 private YesNoType overridableField;
825
826 private bool overridableFieldSet;
827
828 private int sequenceField;
829
830 private bool sequenceFieldSet;
831
832 private YesNoType suppressField;
833
834 private bool suppressFieldSet;
835
836 private string contentField;
837
838 private bool contentFieldSet;
839
840 private ISchemaElement parentElement;
841
842 /// <summary>
843 /// The name of an action that this action should come after.
844 /// </summary>
845 public string After
846 {
847 get
848 {
849 return this.afterField;
850 }
851 set
852 {
853 this.afterFieldSet = true;
854 this.afterField = value;
855 }
856 }
857
858 /// <summary>
859 /// The name of an action that this action should come before.
860 /// </summary>
861 public string Before
862 {
863 get
864 {
865 return this.beforeField;
866 }
867 set
868 {
869 this.beforeFieldSet = true;
870 this.beforeField = value;
871 }
872 }
873
874 /// <summary>
875 /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
876 /// </summary>
877 public YesNoType Overridable
878 {
879 get
880 {
881 return this.overridableField;
882 }
883 set
884 {
885 this.overridableFieldSet = true;
886 this.overridableField = value;
887 }
888 }
889
890 /// <summary>
891 /// A value used to indicate the position of this action in a sequence.
892 /// </summary>
893 public int Sequence
894 {
895 get
896 {
897 return this.sequenceField;
898 }
899 set
900 {
901 this.sequenceFieldSet = true;
902 this.sequenceField = value;
903 }
904 }
905
906 /// <summary>
907 /// If yes, this action will not occur.
908 /// </summary>
909 public YesNoType Suppress
910 {
911 get
912 {
913 return this.suppressField;
914 }
915 set
916 {
917 this.suppressFieldSet = true;
918 this.suppressField = value;
919 }
920 }
921
922 /// <summary>
923 /// Text node specifies the condition of the action.
924 /// </summary>
925 public string Content
926 {
927 get
928 {
929 return this.contentField;
930 }
931 set
932 {
933 this.contentFieldSet = true;
934 this.contentField = value;
935 }
936 }
937
938 public virtual ISchemaElement ParentElement
939 {
940 get
941 {
942 return this.parentElement;
943 }
944 set
945 {
946 this.parentElement = value;
947 }
948 }
949
950 /// <summary>
951 /// Processes this element and all child elements into an XmlWriter.
952 /// </summary>
953 public virtual void OutputXml(XmlWriter writer)
954 {
955 if ((null == writer))
956 {
957 throw new ArgumentNullException("writer");
958 }
959 if (this.afterFieldSet)
960 {
961 writer.WriteAttributeString("After", this.afterField);
962 }
963 if (this.beforeFieldSet)
964 {
965 writer.WriteAttributeString("Before", this.beforeField);
966 }
967 if (this.overridableFieldSet)
968 {
969 if ((this.overridableField == YesNoType.no))
970 {
971 writer.WriteAttributeString("Overridable", "no");
972 }
973 if ((this.overridableField == YesNoType.yes))
974 {
975 writer.WriteAttributeString("Overridable", "yes");
976 }
977 }
978 if (this.sequenceFieldSet)
979 {
980 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
981 }
982 if (this.suppressFieldSet)
983 {
984 if ((this.suppressField == YesNoType.no))
985 {
986 writer.WriteAttributeString("Suppress", "no");
987 }
988 if ((this.suppressField == YesNoType.yes))
989 {
990 writer.WriteAttributeString("Suppress", "yes");
991 }
992 }
993 if (this.contentFieldSet)
994 {
995 writer.WriteString(this.contentField);
996 }
997 }
998
999 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1000 void ISetAttributes.SetAttribute(string name, string value)
1001 {
1002 if (String.IsNullOrEmpty(name))
1003 {
1004 throw new ArgumentNullException("name");
1005 }
1006 if (("After" == name))
1007 {
1008 this.afterField = value;
1009 this.afterFieldSet = true;
1010 }
1011 if (("Before" == name))
1012 {
1013 this.beforeField = value;
1014 this.beforeFieldSet = true;
1015 }
1016 if (("Overridable" == name))
1017 {
1018 this.overridableField = Enums.ParseYesNoType(value);
1019 this.overridableFieldSet = true;
1020 }
1021 if (("Sequence" == name))
1022 {
1023 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1024 this.sequenceFieldSet = true;
1025 }
1026 if (("Suppress" == name))
1027 {
1028 this.suppressField = Enums.ParseYesNoType(value);
1029 this.suppressFieldSet = true;
1030 }
1031 if (("Content" == name))
1032 {
1033 this.contentField = value;
1034 this.contentFieldSet = true;
1035 }
1036 }
1037 }
1038
1039 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1040 public abstract class ActionSequenceType : ISchemaElement, ISetAttributes
1041 {
1042
1043 private int sequenceField;
1044
1045 private bool sequenceFieldSet;
1046
1047 private YesNoType suppressField;
1048
1049 private bool suppressFieldSet;
1050
1051 private string contentField;
1052
1053 private bool contentFieldSet;
1054
1055 private ISchemaElement parentElement;
1056
1057 /// <summary>
1058 /// A value used to indicate the position of this action in a sequence.
1059 /// </summary>
1060 public int Sequence
1061 {
1062 get
1063 {
1064 return this.sequenceField;
1065 }
1066 set
1067 {
1068 this.sequenceFieldSet = true;
1069 this.sequenceField = value;
1070 }
1071 }
1072
1073 /// <summary>
1074 /// If yes, this action will not occur.
1075 /// </summary>
1076 public YesNoType Suppress
1077 {
1078 get
1079 {
1080 return this.suppressField;
1081 }
1082 set
1083 {
1084 this.suppressFieldSet = true;
1085 this.suppressField = value;
1086 }
1087 }
1088
1089 public string Content
1090 {
1091 get
1092 {
1093 return this.contentField;
1094 }
1095 set
1096 {
1097 this.contentFieldSet = true;
1098 this.contentField = value;
1099 }
1100 }
1101
1102 public virtual ISchemaElement ParentElement
1103 {
1104 get
1105 {
1106 return this.parentElement;
1107 }
1108 set
1109 {
1110 this.parentElement = value;
1111 }
1112 }
1113
1114 /// <summary>
1115 /// Processes this element and all child elements into an XmlWriter.
1116 /// </summary>
1117 public virtual void OutputXml(XmlWriter writer)
1118 {
1119 if ((null == writer))
1120 {
1121 throw new ArgumentNullException("writer");
1122 }
1123 if (this.sequenceFieldSet)
1124 {
1125 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
1126 }
1127 if (this.suppressFieldSet)
1128 {
1129 if ((this.suppressField == YesNoType.no))
1130 {
1131 writer.WriteAttributeString("Suppress", "no");
1132 }
1133 if ((this.suppressField == YesNoType.yes))
1134 {
1135 writer.WriteAttributeString("Suppress", "yes");
1136 }
1137 }
1138 if (this.contentFieldSet)
1139 {
1140 writer.WriteString(this.contentField);
1141 }
1142 }
1143
1144 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1145 void ISetAttributes.SetAttribute(string name, string value)
1146 {
1147 if (String.IsNullOrEmpty(name))
1148 {
1149 throw new ArgumentNullException("name");
1150 }
1151 if (("Sequence" == name))
1152 {
1153 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1154 this.sequenceFieldSet = true;
1155 }
1156 if (("Suppress" == name))
1157 {
1158 this.suppressField = Enums.ParseYesNoType(value);
1159 this.suppressFieldSet = true;
1160 }
1161 if (("Content" == name))
1162 {
1163 this.contentField = value;
1164 this.contentFieldSet = true;
1165 }
1166 }
1167 }
1168
1169 /// <summary>
1170 /// This is the top-level container element for every wxs file. Among the possible children,
1171 /// the Bundle, Package, Module, Patch, and PatchCreation elements are analogous to the main function in a C program.
1172 /// There can only be one of these present when linking occurs. Package compiles into an msi file,
1173 /// Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element
1174 /// is an atomic unit which ultimately links into either a Package, Module, or PatchCreation. The
1175 /// Fragment can either be completely included or excluded during linking.
1176 /// </summary>
1177 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1178 public class Wix : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1179 {
1180
1181 private ElementCollection children;
1182
1183 private string requiredVersionField;
1184
1185 private bool requiredVersionFieldSet;
1186
1187 private ISchemaElement parentElement;
1188
1189 public Wix()
1190 {
1191 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
1192 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
1193 ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Choice);
1194 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Bundle)));
1195 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Package)));
1196 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Module)));
1197 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Patch)));
1198 childCollection1.AddCollection(childCollection2);
1199 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(Fragment)));
1200 childCollection0.AddCollection(childCollection1);
1201 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCreation)));
1202 this.children = childCollection0;
1203 }
1204
1205 public virtual IEnumerable Children
1206 {
1207 get
1208 {
1209 return this.children;
1210 }
1211 }
1212
1213 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1214 public virtual IEnumerable this[System.Type childType]
1215 {
1216 get
1217 {
1218 return this.children.Filter(childType);
1219 }
1220 }
1221
1222 /// <summary>
1223 /// Required version of the WiX toolset to compile this input file.
1224 /// </summary>
1225 public string RequiredVersion
1226 {
1227 get
1228 {
1229 return this.requiredVersionField;
1230 }
1231 set
1232 {
1233 this.requiredVersionFieldSet = true;
1234 this.requiredVersionField = value;
1235 }
1236 }
1237
1238 public virtual ISchemaElement ParentElement
1239 {
1240 get
1241 {
1242 return this.parentElement;
1243 }
1244 set
1245 {
1246 this.parentElement = value;
1247 }
1248 }
1249
1250 public virtual void AddChild(ISchemaElement child)
1251 {
1252 if ((null == child))
1253 {
1254 throw new ArgumentNullException("child");
1255 }
1256 this.children.AddElement(child);
1257 child.ParentElement = this;
1258 }
1259
1260 public virtual void RemoveChild(ISchemaElement child)
1261 {
1262 if ((null == child))
1263 {
1264 throw new ArgumentNullException("child");
1265 }
1266 this.children.RemoveElement(child);
1267 child.ParentElement = null;
1268 }
1269
1270 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1271 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1272 ISchemaElement ICreateChildren.CreateChild(string childName)
1273 {
1274 if (String.IsNullOrEmpty(childName))
1275 {
1276 throw new ArgumentNullException("childName");
1277 }
1278 ISchemaElement childValue = null;
1279 if (("Bundle" == childName))
1280 {
1281 childValue = new Bundle();
1282 }
1283 if (("Package" == childName))
1284 {
1285 childValue = new Package();
1286 }
1287 if (("Module" == childName))
1288 {
1289 childValue = new Module();
1290 }
1291 if (("Patch" == childName))
1292 {
1293 childValue = new Patch();
1294 }
1295 if (("Fragment" == childName))
1296 {
1297 childValue = new Fragment();
1298 }
1299 if (("PatchCreation" == childName))
1300 {
1301 childValue = new PatchCreation();
1302 }
1303 if ((null == childValue))
1304 {
1305 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
1306 }
1307 return childValue;
1308 }
1309
1310 /// <summary>
1311 /// Processes this element and all child elements into an XmlWriter.
1312 /// </summary>
1313 public virtual void OutputXml(XmlWriter writer)
1314 {
1315 if ((null == writer))
1316 {
1317 throw new ArgumentNullException("writer");
1318 }
1319 writer.WriteStartElement("Wix", "http://wixtoolset.org/schemas/v4/wxs");
1320 if (this.requiredVersionFieldSet)
1321 {
1322 writer.WriteAttributeString("RequiredVersion", this.requiredVersionField);
1323 }
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
1332 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1333 void ISetAttributes.SetAttribute(string name, string value)
1334 {
1335 if (String.IsNullOrEmpty(name))
1336 {
1337 throw new ArgumentNullException("name");
1338 }
1339 if (("RequiredVersion" == name))
1340 {
1341 this.requiredVersionField = value;
1342 this.requiredVersionFieldSet = true;
1343 }
1344 }
1345 }
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
1354 private ElementCollection children;
1355
1356 private ISchemaElement parentElement;
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
1365 public virtual IEnumerable Children
1366 {
1367 get
1368 {
1369 return this.children;
1370 }
1371 }
1372
1373 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1374 public virtual IEnumerable this[System.Type childType]
1375 {
1376 get
1377 {
1378 return this.children.Filter(childType);
1379 }
1380 }
1381
1382 public virtual ISchemaElement ParentElement
1383 {
1384 get
1385 {
1386 return this.parentElement;
1387 }
1388 set
1389 {
1390 this.parentElement = value;
1391 }
1392 }
1393
1394 public virtual void AddChild(ISchemaElement child)
1395 {
1396 if ((null == child))
1397 {
1398 throw new ArgumentNullException("child");
1399 }
1400 this.children.AddElement(child);
1401 child.ParentElement = this;
1402 }
1403
1404 public virtual void RemoveChild(ISchemaElement child)
1405 {
1406 if ((null == child))
1407 {
1408 throw new ArgumentNullException("child");
1409 }
1410 this.children.RemoveElement(child);
1411 child.ParentElement = null;
1412 }
1413
1414 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1415 ISchemaElement ICreateChildren.CreateChild(string childName)
1416 {
1417 if (String.IsNullOrEmpty(childName))
1418 {
1419 throw new ArgumentNullException("childName");
1420 }
1421 ISchemaElement childValue = null;
1422 if ((null == childValue))
1423 {
1424 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
1425 }
1426 return childValue;
1427 }
1428
1429 /// <summary>
1430 /// Processes this element and all child elements into an XmlWriter.
1431 /// </summary>
1432 public virtual void OutputXml(XmlWriter writer)
1433 {
1434 if ((null == writer))
1435 {
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();)
1440 {
1441 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
1442 childElement.OutputXml(writer);
1443 }
1444 writer.WriteEndElement();
1445 }
1446
1447 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1448 void ISetAttributes.SetAttribute(string name, string value)
1449 {
1450 if (String.IsNullOrEmpty(name))
1451 {
1452 throw new ArgumentNullException("name");
1453 }
1454 }
1455 }
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
1464 private ElementCollection children;
1465
1466 private string aboutUrlField;
1467
1468 private bool aboutUrlFieldSet;
1469
1470 private string copyrightField;
1471
1472 private bool copyrightFieldSet;
1473
1474 private YesNoDefaultType compressedField;
1475
1476 private bool compressedFieldSet;
1477
1478 private YesNoButtonType disableModifyField;
1479
1480 private bool disableModifyFieldSet;
1481
1482 private YesNoType disableRemoveField;
1483
1484 private bool disableRemoveFieldSet;
1485
1486 private YesNoType disableRepairField;
1487
1488 private bool disableRepairFieldSet;
1489
1490 private string helpTelephoneField;
1491
1492 private bool helpTelephoneFieldSet;
1493
1494 private string helpUrlField;
1495
1496 private bool helpUrlFieldSet;
1497
1498 private string iconSourceFileField;
1499
1500 private bool iconSourceFileFieldSet;
1501
1502 private string manufacturerField;
1503
1504 private bool manufacturerFieldSet;
1505
1506 private string nameField;
1507
1508 private bool nameFieldSet;
1509
1510 private string parentNameField;
1511
1512 private bool parentNameFieldSet;
1513
1514 private string splashScreenSourceFileField;
1515
1516 private bool splashScreenSourceFileFieldSet;
1517
1518 private string tagField;
1519
1520 private bool tagFieldSet;
1521
1522 private string updateUrlField;
1523
1524 private bool updateUrlFieldSet;
1525
1526 private string upgradeCodeField;
1527
1528 private bool upgradeCodeFieldSet;
1529
1530 private string versionField;
1531
1532 private bool versionFieldSet;
1533
1534 private string conditionField;
1535
1536 private bool conditionFieldSet;
1537
1538 private ISchemaElement parentElement;
1539
1540 public Bundle()
1541 {
1542 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
1543 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ApprovedExeForElevation)));
1544 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Log)));
1545 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Catalog)));
1546 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication)));
1547 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef)));
1548 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(OptionalUpdateRegistration)));
1549 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Chain)));
1550 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container)));
1551 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ContainerRef)));
1552 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup)));
1553 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
1554 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle)));
1555 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Update)));
1556 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable)));
1557 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
1558 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
1559 this.children = childCollection0;
1560 }
1561
1562 public virtual IEnumerable Children
1563 {
1564 get
1565 {
1566 return this.children;
1567 }
1568 }
1569
1570 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1571 public virtual IEnumerable this[System.Type childType]
1572 {
1573 get
1574 {
1575 return this.children.Filter(childType);
1576 }
1577 }
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).
1582 /// </summary>
1583 public string AboutUrl
1584 {
1585 get
1586 {
1587 return this.aboutUrlField;
1588 }
1589 set
1590 {
1591 this.aboutUrlFieldSet = true;
1592 this.aboutUrlField = value;
1593 }
1594 }
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.".
1599 /// </summary>
1600 public string Copyright
1601 {
1602 get
1603 {
1604 return this.copyrightField;
1605 }
1606 set
1607 {
1608 this.copyrightFieldSet = true;
1609 this.copyrightField = value;
1610 }
1611 }
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>
1616 public YesNoDefaultType Compressed
1617 {
1618 get
1619 {
1620 return this.compressedField;
1621 }
1622 set
1623 {
1624 this.compressedFieldSet = true;
1625 this.compressedField = value;
1626 }
1627 }
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
1632 /// "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show
1633 /// the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown.
1634 /// See the DisableRemove attribute for information how to not display the bundle in Programs
1635 /// and Features.
1636 /// </summary>
1637 public YesNoButtonType DisableModify
1638 {
1639 get
1640 {
1641 return this.disableModifyField;
1642 }
1643 set
1644 {
1645 this.disableModifyFieldSet = true;
1646 this.disableModifyField = value;
1647 }
1648 }
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
1653 /// not be displayed. The default is "no" which ensures there is an "Uninstall" button to
1654 /// remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the
1655 /// bundle will not be displayed in Progams and Features and another mechanism (such as
1656 /// registering as a related bundle addon) must be used to ensure the bundle can be removed.
1657 /// </summary>
1658 public YesNoType DisableRemove
1659 {
1660 get
1661 {
1662 return this.disableRemoveField;
1663 }
1664 set
1665 {
1666 this.disableRemoveFieldSet = true;
1667 this.disableRemoveField = value;
1668 }
1669 }
1670
1671 public YesNoType DisableRepair
1672 {
1673 get
1674 {
1675 return this.disableRepairField;
1676 }
1677 set
1678 {
1679 this.disableRepairFieldSet = true;
1680 this.disableRepairField = value;
1681 }
1682 }
1683
1684 /// <summary>
1685 /// A telephone number for help to display in Programs and Features (also known as
1686 /// Add/Remove Programs).
1687 /// </summary>
1688 public string HelpTelephone
1689 {
1690 get
1691 {
1692 return this.helpTelephoneField;
1693 }
1694 set
1695 {
1696 this.helpTelephoneFieldSet = true;
1697 this.helpTelephoneField = value;
1698 }
1699 }
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).
1704 /// </summary>
1705 public string HelpUrl
1706 {
1707 get
1708 {
1709 return this.helpUrlField;
1710 }
1711 set
1712 {
1713 this.helpUrlFieldSet = true;
1714 this.helpUrlField = value;
1715 }
1716 }
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
1721 /// Programs).
1722 /// </summary>
1723 public string IconSourceFile
1724 {
1725 get
1726 {
1727 return this.iconSourceFileField;
1728 }
1729 set
1730 {
1731 this.iconSourceFileFieldSet = true;
1732 this.iconSourceFileField = value;
1733 }
1734 }
1735
1736 /// <summary>
1737 /// The publisher of the bundle to display in Programs and Features (also known as
1738 /// Add/Remove Programs).
1739 /// </summary>
1740 public string Manufacturer
1741 {
1742 get
1743 {
1744 return this.manufacturerField;
1745 }
1746 set
1747 {
1748 this.manufacturerFieldSet = true;
1749 this.manufacturerField = value;
1750 }
1751 }
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
1756 /// using the WixBundleName bundle variable.
1757 /// </summary>
1758 public string Name
1759 {
1760 get
1761 {
1762 return this.nameField;
1763 }
1764 set
1765 {
1766 this.nameFieldSet = true;
1767 this.nameField = value;
1768 }
1769 }
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.
1774 /// If the parent name does not actually exist, a virtual parent is created automatically.
1775 /// </summary>
1776 public string ParentName
1777 {
1778 get
1779 {
1780 return this.parentNameField;
1781 }
1782 set
1783 {
1784 this.parentNameFieldSet = true;
1785 this.parentNameField = value;
1786 }
1787 }
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>
1792 public string SplashScreenSourceFile
1793 {
1794 get
1795 {
1796 return this.splashScreenSourceFileField;
1797 }
1798 set
1799 {
1800 this.splashScreenSourceFileFieldSet = true;
1801 this.splashScreenSourceFileField = value;
1802 }
1803 }
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>
1808 public string Tag
1809 {
1810 get
1811 {
1812 return this.tagField;
1813 }
1814 set
1815 {
1816 this.tagFieldSet = true;
1817 this.tagField = value;
1818 }
1819 }
1820
1821 /// <summary>
1822 /// A URL for updates of the bundle to display in Programs and Features (also
1823 /// known as Add/Remove Programs).
1824 /// </summary>
1825 public string UpdateUrl
1826 {
1827 get
1828 {
1829 return this.updateUrlField;
1830 }
1831 set
1832 {
1833 this.updateUrlFieldSet = true;
1834 this.updateUrlField = value;
1835 }
1836 }
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.
1841 /// </summary>
1842 public string UpgradeCode
1843 {
1844 get
1845 {
1846 return this.upgradeCodeField;
1847 }
1848 set
1849 {
1850 this.upgradeCodeFieldSet = true;
1851 this.upgradeCodeField = value;
1852 }
1853 }
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
1858 /// then this attribute will be displayed in the Programs and Features user interface.
1859 /// </summary>
1860 public string Version
1861 {
1862 get
1863 {
1864 return this.versionField;
1865 }
1866 set
1867 {
1868 this.versionFieldSet = true;
1869 this.versionField = value;
1870 }
1871 }
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
1876 /// (before detect), and thus can only reference built-in variables such as
1877 /// variables which indicate the version of the OS.
1878 /// </summary>
1879 public string Condition
1880 {
1881 get
1882 {
1883 return this.conditionField;
1884 }
1885 set
1886 {
1887 this.conditionFieldSet = true;
1888 this.conditionField = value;
1889 }
1890 }
1891
1892 public virtual ISchemaElement ParentElement
1893 {
1894 get
1895 {
1896 return this.parentElement;
1897 }
1898 set
1899 {
1900 this.parentElement = value;
1901 }
1902 }
1903
1904 public virtual void AddChild(ISchemaElement child)
1905 {
1906 if ((null == child))
1907 {
1908 throw new ArgumentNullException("child");
1909 }
1910 this.children.AddElement(child);
1911 child.ParentElement = this;
1912 }
1913
1914 public virtual void RemoveChild(ISchemaElement child)
1915 {
1916 if ((null == child))
1917 {
1918 throw new ArgumentNullException("child");
1919 }
1920 this.children.RemoveElement(child);
1921 child.ParentElement = null;
1922 }
1923
1924 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1925 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1926 ISchemaElement ICreateChildren.CreateChild(string childName)
1927 {
1928 if (String.IsNullOrEmpty(childName))
1929 {
1930 throw new ArgumentNullException("childName");
1931 }
1932 ISchemaElement childValue = null;
1933 if (("ApprovedExeForElevation" == childName))
1934 {
1935 childValue = new ApprovedExeForElevation();
1936 }
1937 if (("Log" == childName))
1938 {
1939 childValue = new Log();
1940 }
1941 if (("Catalog" == childName))
1942 {
1943 childValue = new Catalog();
1944 }
1945 if (("BootstrapperApplication" == childName))
1946 {
1947 childValue = new BootstrapperApplication();
1948 }
1949 if (("BootstrapperApplicationRef" == childName))
1950 {
1951 childValue = new BootstrapperApplicationRef();
1952 }
1953 if (("OptionalUpdateRegistration" == childName))
1954 {
1955 childValue = new OptionalUpdateRegistration();
1956 }
1957 if (("Chain" == childName))
1958 {
1959 childValue = new Chain();
1960 }
1961 if (("Container" == childName))
1962 {
1963 childValue = new Container();
1964 }
1965 if (("ContainerRef" == childName))
1966 {
1967 childValue = new ContainerRef();
1968 }
1969 if (("PayloadGroup" == childName))
1970 {
1971 childValue = new PayloadGroup();
1972 }
1973 if (("PayloadGroupRef" == childName))
1974 {
1975 childValue = new PayloadGroupRef();
1976 }
1977 if (("RelatedBundle" == childName))
1978 {
1979 childValue = new RelatedBundle();
1980 }
1981 if (("Update" == childName))
1982 {
1983 childValue = new Update();
1984 }
1985 if (("Variable" == childName))
1986 {
1987 childValue = new Variable();
1988 }
1989 if (("WixVariable" == childName))
1990 {
1991 childValue = new WixVariable();
1992 }
1993 if ((null == childValue))
1994 {
1995 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
1996 }
1997 return childValue;
1998 }
1999
2000 /// <summary>
2001 /// Processes this element and all child elements into an XmlWriter.
2002 /// </summary>
2003 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2004 public virtual void OutputXml(XmlWriter writer)
2005 {
2006 if ((null == writer))
2007 {
2008 throw new ArgumentNullException("writer");
2009 }
2010 writer.WriteStartElement("Bundle", "http://wixtoolset.org/schemas/v4/wxs");
2011 if (this.aboutUrlFieldSet)
2012 {
2013 writer.WriteAttributeString("AboutUrl", this.aboutUrlField);
2014 }
2015 if (this.copyrightFieldSet)
2016 {
2017 writer.WriteAttributeString("Copyright", this.copyrightField);
2018 }
2019 if (this.compressedFieldSet)
2020 {
2021 if ((this.compressedField == YesNoDefaultType.@default))
2022 {
2023 writer.WriteAttributeString("Compressed", "default");
2024 }
2025 if ((this.compressedField == YesNoDefaultType.no))
2026 {
2027 writer.WriteAttributeString("Compressed", "no");
2028 }
2029 if ((this.compressedField == YesNoDefaultType.yes))
2030 {
2031 writer.WriteAttributeString("Compressed", "yes");
2032 }
2033 }
2034 if (this.disableModifyFieldSet)
2035 {
2036 if ((this.disableModifyField == YesNoButtonType.no))
2037 {
2038 writer.WriteAttributeString("DisableModify", "no");
2039 }
2040 if ((this.disableModifyField == YesNoButtonType.yes))
2041 {
2042 writer.WriteAttributeString("DisableModify", "yes");
2043 }
2044 if ((this.disableModifyField == YesNoButtonType.button))
2045 {
2046 writer.WriteAttributeString("DisableModify", "button");
2047 }
2048 }
2049 if (this.disableRemoveFieldSet)
2050 {
2051 if ((this.disableRemoveField == YesNoType.no))
2052 {
2053 writer.WriteAttributeString("DisableRemove", "no");
2054 }
2055 if ((this.disableRemoveField == YesNoType.yes))
2056 {
2057 writer.WriteAttributeString("DisableRemove", "yes");
2058 }
2059 }
2060 if (this.disableRepairFieldSet)
2061 {
2062 if ((this.disableRepairField == YesNoType.no))
2063 {
2064 writer.WriteAttributeString("DisableRepair", "no");
2065 }
2066 if ((this.disableRepairField == YesNoType.yes))
2067 {
2068 writer.WriteAttributeString("DisableRepair", "yes");
2069 }
2070 }
2071 if (this.helpTelephoneFieldSet)
2072 {
2073 writer.WriteAttributeString("HelpTelephone", this.helpTelephoneField);
2074 }
2075 if (this.helpUrlFieldSet)
2076 {
2077 writer.WriteAttributeString("HelpUrl", this.helpUrlField);
2078 }
2079 if (this.iconSourceFileFieldSet)
2080 {
2081 writer.WriteAttributeString("IconSourceFile", this.iconSourceFileField);
2082 }
2083 if (this.manufacturerFieldSet)
2084 {
2085 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
2086 }
2087 if (this.nameFieldSet)
2088 {
2089 writer.WriteAttributeString("Name", this.nameField);
2090 }
2091 if (this.parentNameFieldSet)
2092 {
2093 writer.WriteAttributeString("ParentName", this.parentNameField);
2094 }
2095 if (this.splashScreenSourceFileFieldSet)
2096 {
2097 writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField);
2098 }
2099 if (this.tagFieldSet)
2100 {
2101 writer.WriteAttributeString("Tag", this.tagField);
2102 }
2103 if (this.updateUrlFieldSet)
2104 {
2105 writer.WriteAttributeString("UpdateUrl", this.updateUrlField);
2106 }
2107 if (this.upgradeCodeFieldSet)
2108 {
2109 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
2110 }
2111 if (this.versionFieldSet)
2112 {
2113 writer.WriteAttributeString("Version", this.versionField);
2114 }
2115 if (this.conditionFieldSet)
2116 {
2117 writer.WriteAttributeString("Condition", this.conditionField);
2118 }
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
2127 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2128 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2129 void ISetAttributes.SetAttribute(string name, string value)
2130 {
2131 if (String.IsNullOrEmpty(name))
2132 {
2133 throw new ArgumentNullException("name");
2134 }
2135 if (("AboutUrl" == name))
2136 {
2137 this.aboutUrlField = value;
2138 this.aboutUrlFieldSet = true;
2139 }
2140 if (("Copyright" == name))
2141 {
2142 this.copyrightField = value;
2143 this.copyrightFieldSet = true;
2144 }
2145 if (("Compressed" == name))
2146 {
2147 this.compressedField = Enums.ParseYesNoDefaultType(value);
2148 this.compressedFieldSet = true;
2149 }
2150 if (("DisableModify" == name))
2151 {
2152 this.disableModifyField = Enums.ParseYesNoButtonType(value);
2153 this.disableModifyFieldSet = true;
2154 }
2155 if (("DisableRemove" == name))
2156 {
2157 this.disableRemoveField = Enums.ParseYesNoType(value);
2158 this.disableRemoveFieldSet = true;
2159 }
2160 if (("DisableRepair" == name))
2161 {
2162 this.disableRepairField = Enums.ParseYesNoType(value);
2163 this.disableRepairFieldSet = true;
2164 }
2165 if (("HelpTelephone" == name))
2166 {
2167 this.helpTelephoneField = value;
2168 this.helpTelephoneFieldSet = true;
2169 }
2170 if (("HelpUrl" == name))
2171 {
2172 this.helpUrlField = value;
2173 this.helpUrlFieldSet = true;
2174 }
2175 if (("IconSourceFile" == name))
2176 {
2177 this.iconSourceFileField = value;
2178 this.iconSourceFileFieldSet = true;
2179 }
2180 if (("Manufacturer" == name))
2181 {
2182 this.manufacturerField = value;
2183 this.manufacturerFieldSet = true;
2184 }
2185 if (("Name" == name))
2186 {
2187 this.nameField = value;
2188 this.nameFieldSet = true;
2189 }
2190 if (("ParentName" == name))
2191 {
2192 this.parentNameField = value;
2193 this.parentNameFieldSet = true;
2194 }
2195 if (("SplashScreenSourceFile" == name))
2196 {
2197 this.splashScreenSourceFileField = value;
2198 this.splashScreenSourceFileFieldSet = true;
2199 }
2200 if (("Tag" == name))
2201 {
2202 this.tagField = value;
2203 this.tagFieldSet = true;
2204 }
2205 if (("UpdateUrl" == name))
2206 {
2207 this.updateUrlField = value;
2208 this.updateUrlFieldSet = true;
2209 }
2210 if (("UpgradeCode" == name))
2211 {
2212 this.upgradeCodeField = value;
2213 this.upgradeCodeFieldSet = true;
2214 }
2215 if (("Version" == name))
2216 {
2217 this.versionField = value;
2218 this.versionFieldSet = true;
2219 }
2220 if (("Condition" == name))
2221 {
2222 this.conditionField = value;
2223 this.conditionFieldSet = true;
2224 }
2225 }
2226 }
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
2235 private string idField;
2236
2237 private bool idFieldSet;
2238
2239 private string keyField;
2240
2241 private bool keyFieldSet;
2242
2243 private string valueField;
2244
2245 private bool valueFieldSet;
2246
2247 private YesNoType win64Field;
2248
2249 private bool win64FieldSet;
2250
2251 private ISchemaElement parentElement;
2252
2253 /// <summary>
2254 /// The identifier of the ApprovedExeForElevation element.
2255 /// </summary>
2256 public string Id
2257 {
2258 get
2259 {
2260 return this.idField;
2261 }
2262 set
2263 {
2264 this.idFieldSet = true;
2265 this.idField = value;
2266 }
2267 }
2268
2269 /// <summary>
2270 /// The key path.
2271 /// For security purposes, the root key will be HKLM and Variables are not supported.
2272 /// </summary>
2273 public string Key
2274 {
2275 get
2276 {
2277 return this.keyField;
2278 }
2279 set
2280 {
2281 this.keyFieldSet = true;
2282 this.keyField = value;
2283 }
2284 }
2285
2286 /// <summary>
2287 /// The value name.
2288 /// For security purposes, Variables are not supported.
2289 /// </summary>
2290 public string Value
2291 {
2292 get
2293 {
2294 return this.valueField;
2295 }
2296 set
2297 {
2298 this.valueFieldSet = true;
2299 this.valueField = value;
2300 }
2301 }
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.
2306 /// The default value is 'no'.
2307 /// </summary>
2308 public YesNoType Win64
2309 {
2310 get
2311 {
2312 return this.win64Field;
2313 }
2314 set
2315 {
2316 this.win64FieldSet = true;
2317 this.win64Field = value;
2318 }
2319 }
2320
2321 public virtual ISchemaElement ParentElement
2322 {
2323 get
2324 {
2325 return this.parentElement;
2326 }
2327 set
2328 {
2329 this.parentElement = value;
2330 }
2331 }
2332
2333 /// <summary>
2334 /// Processes this element and all child elements into an XmlWriter.
2335 /// </summary>
2336 public virtual void OutputXml(XmlWriter writer)
2337 {
2338 if ((null == writer))
2339 {
2340 throw new ArgumentNullException("writer");
2341 }
2342 writer.WriteStartElement("ApprovedExeForElevation", "http://wixtoolset.org/schemas/v4/wxs");
2343 if (this.idFieldSet)
2344 {
2345 writer.WriteAttributeString("Id", this.idField);
2346 }
2347 if (this.keyFieldSet)
2348 {
2349 writer.WriteAttributeString("Key", this.keyField);
2350 }
2351 if (this.valueFieldSet)
2352 {
2353 writer.WriteAttributeString("Value", this.valueField);
2354 }
2355 if (this.win64FieldSet)
2356 {
2357 if ((this.win64Field == YesNoType.no))
2358 {
2359 writer.WriteAttributeString("Win64", "no");
2360 }
2361 if ((this.win64Field == YesNoType.yes))
2362 {
2363 writer.WriteAttributeString("Win64", "yes");
2364 }
2365 }
2366 writer.WriteEndElement();
2367 }
2368
2369 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2370 void ISetAttributes.SetAttribute(string name, string value)
2371 {
2372 if (String.IsNullOrEmpty(name))
2373 {
2374 throw new ArgumentNullException("name");
2375 }
2376 if (("Id" == name))
2377 {
2378 this.idField = value;
2379 this.idFieldSet = true;
2380 }
2381 if (("Key" == name))
2382 {
2383 this.keyField = value;
2384 this.keyFieldSet = true;
2385 }
2386 if (("Value" == name))
2387 {
2388 this.valueField = value;
2389 this.valueFieldSet = true;
2390 }
2391 if (("Win64" == name))
2392 {
2393 this.win64Field = Enums.ParseYesNoType(value);
2394 this.win64FieldSet = true;
2395 }
2396 }
2397 }
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
2406 private YesNoType disableField;
2407
2408 private bool disableFieldSet;
2409
2410 private string pathVariableField;
2411
2412 private bool pathVariableFieldSet;
2413
2414 private string prefixField;
2415
2416 private bool prefixFieldSet;
2417
2418 private string extensionField;
2419
2420 private bool extensionFieldSet;
2421
2422 private ISchemaElement parentElement;
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
2427 /// Bundle.
2428 /// </summary>
2429 public YesNoType Disable
2430 {
2431 get
2432 {
2433 return this.disableField;
2434 }
2435 set
2436 {
2437 this.disableFieldSet = true;
2438 this.disableField = value;
2439 }
2440 }
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".
2445 /// </summary>
2446 public string PathVariable
2447 {
2448 get
2449 {
2450 return this.pathVariableField;
2451 }
2452 set
2453 {
2454 this.pathVariableFieldSet = true;
2455 this.pathVariableField = value;
2456 }
2457 }
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
2462 /// "Setup".
2463 /// </summary>
2464 public string Prefix
2465 {
2466 get
2467 {
2468 return this.prefixField;
2469 }
2470 set
2471 {
2472 this.prefixFieldSet = true;
2473 this.prefixField = value;
2474 }
2475 }
2476
2477 /// <summary>
2478 /// The extension to use for the log. The default is ".log".
2479 /// </summary>
2480 public string Extension
2481 {
2482 get
2483 {
2484 return this.extensionField;
2485 }
2486 set
2487 {
2488 this.extensionFieldSet = true;
2489 this.extensionField = value;
2490 }
2491 }
2492
2493 public virtual ISchemaElement ParentElement
2494 {
2495 get
2496 {
2497 return this.parentElement;
2498 }
2499 set
2500 {
2501 this.parentElement = value;
2502 }
2503 }
2504
2505 /// <summary>
2506 /// Processes this element and all child elements into an XmlWriter.
2507 /// </summary>
2508 public virtual void OutputXml(XmlWriter writer)
2509 {
2510 if ((null == writer))
2511 {
2512 throw new ArgumentNullException("writer");
2513 }
2514 writer.WriteStartElement("Log", "http://wixtoolset.org/schemas/v4/wxs");
2515 if (this.disableFieldSet)
2516 {
2517 if ((this.disableField == YesNoType.no))
2518 {
2519 writer.WriteAttributeString("Disable", "no");
2520 }
2521 if ((this.disableField == YesNoType.yes))
2522 {
2523 writer.WriteAttributeString("Disable", "yes");
2524 }
2525 }
2526 if (this.pathVariableFieldSet)
2527 {
2528 writer.WriteAttributeString("PathVariable", this.pathVariableField);
2529 }
2530 if (this.prefixFieldSet)
2531 {
2532 writer.WriteAttributeString("Prefix", this.prefixField);
2533 }
2534 if (this.extensionFieldSet)
2535 {
2536 writer.WriteAttributeString("Extension", this.extensionField);
2537 }
2538 writer.WriteEndElement();
2539 }
2540
2541 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2542 void ISetAttributes.SetAttribute(string name, string value)
2543 {
2544 if (String.IsNullOrEmpty(name))
2545 {
2546 throw new ArgumentNullException("name");
2547 }
2548 if (("Disable" == name))
2549 {
2550 this.disableField = Enums.ParseYesNoType(value);
2551 this.disableFieldSet = true;
2552 }
2553 if (("PathVariable" == name))
2554 {
2555 this.pathVariableField = value;
2556 this.pathVariableFieldSet = true;
2557 }
2558 if (("Prefix" == name))
2559 {
2560 this.prefixField = value;
2561 this.prefixFieldSet = true;
2562 }
2563 if (("Extension" == name))
2564 {
2565 this.extensionField = value;
2566 this.extensionFieldSet = true;
2567 }
2568 }
2569 }
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
2578 private string idField;
2579
2580 private bool idFieldSet;
2581
2582 private string sourceFileField;
2583
2584 private bool sourceFileFieldSet;
2585
2586 private ISchemaElement parentElement;
2587
2588 /// <summary>
2589 /// The identifier of the catalog element.
2590 /// </summary>
2591 public string Id
2592 {
2593 get
2594 {
2595 return this.idField;
2596 }
2597 set
2598 {
2599 this.idFieldSet = true;
2600 this.idField = value;
2601 }
2602 }
2603
2604 /// <summary>
2605 /// The catalog file
2606 /// </summary>
2607 public string SourceFile
2608 {
2609 get
2610 {
2611 return this.sourceFileField;
2612 }
2613 set
2614 {
2615 this.sourceFileFieldSet = true;
2616 this.sourceFileField = value;
2617 }
2618 }
2619
2620 public virtual ISchemaElement ParentElement
2621 {
2622 get
2623 {
2624 return this.parentElement;
2625 }
2626 set
2627 {
2628 this.parentElement = value;
2629 }
2630 }
2631
2632 /// <summary>
2633 /// Processes this element and all child elements into an XmlWriter.
2634 /// </summary>
2635 public virtual void OutputXml(XmlWriter writer)
2636 {
2637 if ((null == writer))
2638 {
2639 throw new ArgumentNullException("writer");
2640 }
2641 writer.WriteStartElement("Catalog", "http://wixtoolset.org/schemas/v4/wxs");
2642 if (this.idFieldSet)
2643 {
2644 writer.WriteAttributeString("Id", this.idField);
2645 }
2646 if (this.sourceFileFieldSet)
2647 {
2648 writer.WriteAttributeString("SourceFile", this.sourceFileField);
2649 }
2650 writer.WriteEndElement();
2651 }
2652
2653 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2654 void ISetAttributes.SetAttribute(string name, string value)
2655 {
2656 if (String.IsNullOrEmpty(name))
2657 {
2658 throw new ArgumentNullException("name");
2659 }
2660 if (("Id" == name))
2661 {
2662 this.idField = value;
2663 this.idFieldSet = true;
2664 }
2665 if (("SourceFile" == name))
2666 {
2667 this.sourceFileField = value;
2668 this.sourceFileFieldSet = true;
2669 }
2670 }
2671 }
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
2680 private ElementCollection children;
2681
2682 private string idField;
2683
2684 private bool idFieldSet;
2685
2686 private string sourceFileField;
2687
2688 private bool sourceFileFieldSet;
2689
2690 private string nameField;
2691
2692 private bool nameFieldSet;
2693
2694 private ISchemaElement parentElement;
2695
2696 public BootstrapperApplication()
2697 {
2698 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
2699 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
2700 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
2701 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
2702 this.children = childCollection0;
2703 }
2704
2705 public virtual IEnumerable Children
2706 {
2707 get
2708 {
2709 return this.children;
2710 }
2711 }
2712
2713 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
2714 public virtual IEnumerable this[System.Type childType]
2715 {
2716 get
2717 {
2718 return this.children.Filter(childType);
2719 }
2720 }
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>
2725 public string Id
2726 {
2727 get
2728 {
2729 return this.idField;
2730 }
2731 set
2732 {
2733 this.idFieldSet = true;
2734 this.idField = value;
2735 }
2736 }
2737
2738 /// <summary>
2739 /// The DLL with the bootstrapper application entry function.
2740 /// </summary>
2741 public string SourceFile
2742 {
2743 get
2744 {
2745 return this.sourceFileField;
2746 }
2747 set
2748 {
2749 this.sourceFileFieldSet = true;
2750 this.sourceFileField = value;
2751 }
2752 }
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>
2757 public string Name
2758 {
2759 get
2760 {
2761 return this.nameField;
2762 }
2763 set
2764 {
2765 this.nameFieldSet = true;
2766 this.nameField = value;
2767 }
2768 }
2769
2770 public virtual ISchemaElement ParentElement
2771 {
2772 get
2773 {
2774 return this.parentElement;
2775 }
2776 set
2777 {
2778 this.parentElement = value;
2779 }
2780 }
2781
2782 public virtual void AddChild(ISchemaElement child)
2783 {
2784 if ((null == child))
2785 {
2786 throw new ArgumentNullException("child");
2787 }
2788 this.children.AddElement(child);
2789 child.ParentElement = this;
2790 }
2791
2792 public virtual void RemoveChild(ISchemaElement child)
2793 {
2794 if ((null == child))
2795 {
2796 throw new ArgumentNullException("child");
2797 }
2798 this.children.RemoveElement(child);
2799 child.ParentElement = null;
2800 }
2801
2802 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2803 ISchemaElement ICreateChildren.CreateChild(string childName)
2804 {
2805 if (String.IsNullOrEmpty(childName))
2806 {
2807 throw new ArgumentNullException("childName");
2808 }
2809 ISchemaElement childValue = null;
2810 if (("Payload" == childName))
2811 {
2812 childValue = new Payload();
2813 }
2814 if (("PayloadGroupRef" == childName))
2815 {
2816 childValue = new PayloadGroupRef();
2817 }
2818 if ((null == childValue))
2819 {
2820 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
2821 }
2822 return childValue;
2823 }
2824
2825 /// <summary>
2826 /// Processes this element and all child elements into an XmlWriter.
2827 /// </summary>
2828 public virtual void OutputXml(XmlWriter writer)
2829 {
2830 if ((null == writer))
2831 {
2832 throw new ArgumentNullException("writer");
2833 }
2834 writer.WriteStartElement("BootstrapperApplication", "http://wixtoolset.org/schemas/v4/wxs");
2835 if (this.idFieldSet)
2836 {
2837 writer.WriteAttributeString("Id", this.idField);
2838 }
2839 if (this.sourceFileFieldSet)
2840 {
2841 writer.WriteAttributeString("SourceFile", this.sourceFileField);
2842 }
2843 if (this.nameFieldSet)
2844 {
2845 writer.WriteAttributeString("Name", this.nameField);
2846 }
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
2855 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2856 void ISetAttributes.SetAttribute(string name, string value)
2857 {
2858 if (String.IsNullOrEmpty(name))
2859 {
2860 throw new ArgumentNullException("name");
2861 }
2862 if (("Id" == name))
2863 {
2864 this.idField = value;
2865 this.idFieldSet = true;
2866 }
2867 if (("SourceFile" == name))
2868 {
2869 this.sourceFileField = value;
2870 this.sourceFileFieldSet = true;
2871 }
2872 if (("Name" == name))
2873 {
2874 this.nameField = value;
2875 this.nameFieldSet = true;
2876 }
2877 }
2878 }
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
2887 private ElementCollection children;
2888
2889 private string idField;
2890
2891 private bool idFieldSet;
2892
2893 private ISchemaElement parentElement;
2894
2895 public BootstrapperApplicationRef()
2896 {
2897 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
2898 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
2899 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
2900 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
2901 this.children = childCollection0;
2902 }
2903
2904 public virtual IEnumerable Children
2905 {
2906 get
2907 {
2908 return this.children;
2909 }
2910 }
2911
2912 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
2913 public virtual IEnumerable this[System.Type childType]
2914 {
2915 get
2916 {
2917 return this.children.Filter(childType);
2918 }
2919 }
2920
2921 /// <summary>
2922 /// The identifier of the BootstrapperApplication element to reference.
2923 /// </summary>
2924 public string Id
2925 {
2926 get
2927 {
2928 return this.idField;
2929 }
2930 set
2931 {
2932 this.idFieldSet = true;
2933 this.idField = value;
2934 }
2935 }
2936
2937 public virtual ISchemaElement ParentElement
2938 {
2939 get
2940 {
2941 return this.parentElement;
2942 }
2943 set
2944 {
2945 this.parentElement = value;
2946 }
2947 }
2948
2949 public virtual void AddChild(ISchemaElement child)
2950 {
2951 if ((null == child))
2952 {
2953 throw new ArgumentNullException("child");
2954 }
2955 this.children.AddElement(child);
2956 child.ParentElement = this;
2957 }
2958
2959 public virtual void RemoveChild(ISchemaElement child)
2960 {
2961 if ((null == child))
2962 {
2963 throw new ArgumentNullException("child");
2964 }
2965 this.children.RemoveElement(child);
2966 child.ParentElement = null;
2967 }
2968
2969 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2970 ISchemaElement ICreateChildren.CreateChild(string childName)
2971 {
2972 if (String.IsNullOrEmpty(childName))
2973 {
2974 throw new ArgumentNullException("childName");
2975 }
2976 ISchemaElement childValue = null;
2977 if (("Payload" == childName))
2978 {
2979 childValue = new Payload();
2980 }
2981 if (("PayloadGroupRef" == childName))
2982 {
2983 childValue = new PayloadGroupRef();
2984 }
2985 if ((null == childValue))
2986 {
2987 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
2988 }
2989 return childValue;
2990 }
2991
2992 /// <summary>
2993 /// Processes this element and all child elements into an XmlWriter.
2994 /// </summary>
2995 public virtual void OutputXml(XmlWriter writer)
2996 {
2997 if ((null == writer))
2998 {
2999 throw new ArgumentNullException("writer");
3000 }
3001 writer.WriteStartElement("BootstrapperApplicationRef", "http://wixtoolset.org/schemas/v4/wxs");
3002 if (this.idFieldSet)
3003 {
3004 writer.WriteAttributeString("Id", this.idField);
3005 }
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
3014 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3015 void ISetAttributes.SetAttribute(string name, string value)
3016 {
3017 if (String.IsNullOrEmpty(name))
3018 {
3019 throw new ArgumentNullException("name");
3020 }
3021 if (("Id" == name))
3022 {
3023 this.idField = value;
3024 this.idFieldSet = true;
3025 }
3026 }
3027 }
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
3036 private ElementCollection children;
3037
3038 private string sourceFileField;
3039
3040 private bool sourceFileFieldSet;
3041
3042 private string nameField;
3043
3044 private bool nameFieldSet;
3045
3046 private string splashScreenSourceFileField;
3047
3048 private bool splashScreenSourceFileFieldSet;
3049
3050 private ISchemaElement parentElement;
3051
3052 public UX()
3053 {
3054 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
3055 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
3056 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
3057 this.children = childCollection0;
3058 }
3059
3060 public virtual IEnumerable Children
3061 {
3062 get
3063 {
3064 return this.children;
3065 }
3066 }
3067
3068 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3069 public virtual IEnumerable this[System.Type childType]
3070 {
3071 get
3072 {
3073 return this.children.Filter(childType);
3074 }
3075 }
3076
3077 /// <summary>
3078 /// See the BootstrapperApplication instead.
3079 /// </summary>
3080 public string SourceFile
3081 {
3082 get
3083 {
3084 return this.sourceFileField;
3085 }
3086 set
3087 {
3088 this.sourceFileFieldSet = true;
3089 this.sourceFileField = value;
3090 }
3091 }
3092
3093 /// <summary>
3094 /// See the BootstrapperApplication instead.
3095 /// </summary>
3096 public string Name
3097 {
3098 get
3099 {
3100 return this.nameField;
3101 }
3102 set
3103 {
3104 this.nameFieldSet = true;
3105 this.nameField = value;
3106 }
3107 }
3108
3109 /// <summary>
3110 /// See the BootstrapperApplication instead.
3111 /// </summary>
3112 public string SplashScreenSourceFile
3113 {
3114 get
3115 {
3116 return this.splashScreenSourceFileField;
3117 }
3118 set
3119 {
3120 this.splashScreenSourceFileFieldSet = true;
3121 this.splashScreenSourceFileField = value;
3122 }
3123 }
3124
3125 public virtual ISchemaElement ParentElement
3126 {
3127 get
3128 {
3129 return this.parentElement;
3130 }
3131 set
3132 {
3133 this.parentElement = value;
3134 }
3135 }
3136
3137 public virtual void AddChild(ISchemaElement child)
3138 {
3139 if ((null == child))
3140 {
3141 throw new ArgumentNullException("child");
3142 }
3143 this.children.AddElement(child);
3144 child.ParentElement = this;
3145 }
3146
3147 public virtual void RemoveChild(ISchemaElement child)
3148 {
3149 if ((null == child))
3150 {
3151 throw new ArgumentNullException("child");
3152 }
3153 this.children.RemoveElement(child);
3154 child.ParentElement = null;
3155 }
3156
3157 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3158 ISchemaElement ICreateChildren.CreateChild(string childName)
3159 {
3160 if (String.IsNullOrEmpty(childName))
3161 {
3162 throw new ArgumentNullException("childName");
3163 }
3164 ISchemaElement childValue = null;
3165 if (("Payload" == childName))
3166 {
3167 childValue = new Payload();
3168 }
3169 if (("PayloadGroupRef" == childName))
3170 {
3171 childValue = new PayloadGroupRef();
3172 }
3173 if ((null == childValue))
3174 {
3175 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
3176 }
3177 return childValue;
3178 }
3179
3180 /// <summary>
3181 /// Processes this element and all child elements into an XmlWriter.
3182 /// </summary>
3183 public virtual void OutputXml(XmlWriter writer)
3184 {
3185 if ((null == writer))
3186 {
3187 throw new ArgumentNullException("writer");
3188 }
3189 writer.WriteStartElement("UX", "http://wixtoolset.org/schemas/v4/wxs");
3190 if (this.sourceFileFieldSet)
3191 {
3192 writer.WriteAttributeString("SourceFile", this.sourceFileField);
3193 }
3194 if (this.nameFieldSet)
3195 {
3196 writer.WriteAttributeString("Name", this.nameField);
3197 }
3198 if (this.splashScreenSourceFileFieldSet)
3199 {
3200 writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField);
3201 }
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
3210 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3211 void ISetAttributes.SetAttribute(string name, string value)
3212 {
3213 if (String.IsNullOrEmpty(name))
3214 {
3215 throw new ArgumentNullException("name");
3216 }
3217 if (("SourceFile" == name))
3218 {
3219 this.sourceFileField = value;
3220 this.sourceFileFieldSet = true;
3221 }
3222 if (("Name" == name))
3223 {
3224 this.nameField = value;
3225 this.nameFieldSet = true;
3226 }
3227 if (("SplashScreenSourceFile" == name))
3228 {
3229 this.splashScreenSourceFileField = value;
3230 this.splashScreenSourceFileFieldSet = true;
3231 }
3232 }
3233 }
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.
3238 /// </summary>
3239 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3240 public class OptionalUpdateRegistration : ISchemaElement, ISetAttributes
3241 {
3242
3243 private string manufacturerField;
3244
3245 private bool manufacturerFieldSet;
3246
3247 private string departmentField;
3248
3249 private bool departmentFieldSet;
3250
3251 private string productFamilyField;
3252
3253 private bool productFamilyFieldSet;
3254
3255 private string nameField;
3256
3257 private bool nameFieldSet;
3258
3259 private string classificationField;
3260
3261 private bool classificationFieldSet;
3262
3263 private ISchemaElement parentElement;
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.
3268 /// An error is generated at build time if neither attribute is specified.
3269 /// </summary>
3270 public string Manufacturer
3271 {
3272 get
3273 {
3274 return this.manufacturerField;
3275 }
3276 set
3277 {
3278 this.manufacturerFieldSet = true;
3279 this.manufacturerField = value;
3280 }
3281 }
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.
3286 /// </summary>
3287 public string Department
3288 {
3289 get
3290 {
3291 return this.departmentField;
3292 }
3293 set
3294 {
3295 this.departmentFieldSet = true;
3296 this.departmentField = value;
3297 }
3298 }
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.
3303 /// </summary>
3304 public string ProductFamily
3305 {
3306 get
3307 {
3308 return this.productFamilyField;
3309 }
3310 set
3311 {
3312 this.productFamilyFieldSet = true;
3313 this.productFamilyField = value;
3314 }
3315 }
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).
3320 /// An error is generated at build time if neither attribute is specified.
3321 /// </summary>
3322 public string Name
3323 {
3324 get
3325 {
3326 return this.nameField;
3327 }
3328 set
3329 {
3330 this.nameFieldSet = true;
3331 this.nameField = value;
3332 }
3333 }
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.
3338 /// </summary>
3339 public string Classification
3340 {
3341 get
3342 {
3343 return this.classificationField;
3344 }
3345 set
3346 {
3347 this.classificationFieldSet = true;
3348 this.classificationField = value;
3349 }
3350 }
3351
3352 public virtual ISchemaElement ParentElement
3353 {
3354 get
3355 {
3356 return this.parentElement;
3357 }
3358 set
3359 {
3360 this.parentElement = value;
3361 }
3362 }
3363
3364 /// <summary>
3365 /// Processes this element and all child elements into an XmlWriter.
3366 /// </summary>
3367 public virtual void OutputXml(XmlWriter writer)
3368 {
3369 if ((null == writer))
3370 {
3371 throw new ArgumentNullException("writer");
3372 }
3373 writer.WriteStartElement("OptionalUpdateRegistration", "http://wixtoolset.org/schemas/v4/wxs");
3374 if (this.manufacturerFieldSet)
3375 {
3376 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
3377 }
3378 if (this.departmentFieldSet)
3379 {
3380 writer.WriteAttributeString("Department", this.departmentField);
3381 }
3382 if (this.productFamilyFieldSet)
3383 {
3384 writer.WriteAttributeString("ProductFamily", this.productFamilyField);
3385 }
3386 if (this.nameFieldSet)
3387 {
3388 writer.WriteAttributeString("Name", this.nameField);
3389 }
3390 if (this.classificationFieldSet)
3391 {
3392 writer.WriteAttributeString("Classification", this.classificationField);
3393 }
3394 writer.WriteEndElement();
3395 }
3396
3397 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3398 void ISetAttributes.SetAttribute(string name, string value)
3399 {
3400 if (String.IsNullOrEmpty(name))
3401 {
3402 throw new ArgumentNullException("name");
3403 }
3404 if (("Manufacturer" == name))
3405 {
3406 this.manufacturerField = value;
3407 this.manufacturerFieldSet = true;
3408 }
3409 if (("Department" == name))
3410 {
3411 this.departmentField = value;
3412 this.departmentFieldSet = true;
3413 }
3414 if (("ProductFamily" == name))
3415 {
3416 this.productFamilyField = value;
3417 this.productFamilyFieldSet = true;
3418 }
3419 if (("Name" == name))
3420 {
3421 this.nameField = value;
3422 this.nameFieldSet = true;
3423 }
3424 if (("Classification" == name))
3425 {
3426 this.classificationField = value;
3427 this.classificationFieldSet = true;
3428 }
3429 }
3430 }
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
3439 private ElementCollection children;
3440
3441 private YesNoType disableRollbackField;
3442
3443 private bool disableRollbackFieldSet;
3444
3445 private YesNoType disableSystemRestoreField;
3446
3447 private bool disableSystemRestoreFieldSet;
3448
3449 private YesNoType parallelCacheField;
3450
3451 private bool parallelCacheFieldSet;
3452
3453 private ISchemaElement parentElement;
3454
3455 public Chain()
3456 {
3457 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
3458 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage)));
3459 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage)));
3460 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage)));
3461 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage)));
3462 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary)));
3463 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
3464 this.children = childCollection0;
3465 }
3466
3467 public virtual IEnumerable Children
3468 {
3469 get
3470 {
3471 return this.children;
3472 }
3473 }
3474
3475 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3476 public virtual IEnumerable this[System.Type childType]
3477 {
3478 get
3479 {
3480 return this.children.Filter(childType);
3481 }
3482 }
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
3487 /// package fails to install only that package will rollback and the
3488 /// chain will stop with the error. The default is "no" which
3489 /// indicates all packages executed during the chain will be
3490 /// rolledback to their previous state when a vital package fails.
3491 /// </summary>
3492 public YesNoType DisableRollback
3493 {
3494 get
3495 {
3496 return this.disableRollbackField;
3497 }
3498 set
3499 {
3500 this.disableRollbackFieldSet = true;
3501 this.disableRollbackField = value;
3502 }
3503 }
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
3508 /// a system restore point will not be created. The default is "no" which
3509 /// indicates a system restore point will be created when the bundle is
3510 /// installed, uninstalled, repaired, modified, etc. If the system restore
3511 /// point cannot be created, the bundle will log the issue and continue.
3512 /// </summary>
3513 public YesNoType DisableSystemRestore
3514 {
3515 get
3516 {
3517 return this.disableSystemRestoreField;
3518 }
3519 set
3520 {
3521 this.disableSystemRestoreFieldSet = true;
3522 this.disableSystemRestoreField = value;
3523 }
3524 }
3525
3526 /// <summary>
3527 /// Specifies whether the bundle will start installing packages
3528 /// while other packages are still being cached. If "yes",
3529 /// packages will start executing when a rollback boundary is
3530 /// encountered. The default is "no" which dictates all packages
3531 /// must be cached before any packages will start to be installed.
3532 /// </summary>
3533 public YesNoType ParallelCache
3534 {
3535 get
3536 {
3537 return this.parallelCacheField;
3538 }
3539 set
3540 {
3541 this.parallelCacheFieldSet = true;
3542 this.parallelCacheField = value;
3543 }
3544 }
3545
3546 public virtual ISchemaElement ParentElement
3547 {
3548 get
3549 {
3550 return this.parentElement;
3551 }
3552 set
3553 {
3554 this.parentElement = value;
3555 }
3556 }
3557
3558 public virtual void AddChild(ISchemaElement child)
3559 {
3560 if ((null == child))
3561 {
3562 throw new ArgumentNullException("child");
3563 }
3564 this.children.AddElement(child);
3565 child.ParentElement = this;
3566 }
3567
3568 public virtual void RemoveChild(ISchemaElement child)
3569 {
3570 if ((null == child))
3571 {
3572 throw new ArgumentNullException("child");
3573 }
3574 this.children.RemoveElement(child);
3575 child.ParentElement = null;
3576 }
3577
3578 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3579 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3580 ISchemaElement ICreateChildren.CreateChild(string childName)
3581 {
3582 if (String.IsNullOrEmpty(childName))
3583 {
3584 throw new ArgumentNullException("childName");
3585 }
3586 ISchemaElement childValue = null;
3587 if (("MsiPackage" == childName))
3588 {
3589 childValue = new MsiPackage();
3590 }
3591 if (("MspPackage" == childName))
3592 {
3593 childValue = new MspPackage();
3594 }
3595 if (("MsuPackage" == childName))
3596 {
3597 childValue = new MsuPackage();
3598 }
3599 if (("ExePackage" == childName))
3600 {
3601 childValue = new ExePackage();
3602 }
3603 if (("RollbackBoundary" == childName))
3604 {
3605 childValue = new RollbackBoundary();
3606 }
3607 if (("PackageGroupRef" == childName))
3608 {
3609 childValue = new PackageGroupRef();
3610 }
3611 if ((null == childValue))
3612 {
3613 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
3614 }
3615 return childValue;
3616 }
3617
3618 /// <summary>
3619 /// Processes this element and all child elements into an XmlWriter.
3620 /// </summary>
3621 public virtual void OutputXml(XmlWriter writer)
3622 {
3623 if ((null == writer))
3624 {
3625 throw new ArgumentNullException("writer");
3626 }
3627 writer.WriteStartElement("Chain", "http://wixtoolset.org/schemas/v4/wxs");
3628 if (this.disableRollbackFieldSet)
3629 {
3630 if ((this.disableRollbackField == YesNoType.no))
3631 {
3632 writer.WriteAttributeString("DisableRollback", "no");
3633 }
3634 if ((this.disableRollbackField == YesNoType.yes))
3635 {
3636 writer.WriteAttributeString("DisableRollback", "yes");
3637 }
3638 }
3639 if (this.disableSystemRestoreFieldSet)
3640 {
3641 if ((this.disableSystemRestoreField == YesNoType.no))
3642 {
3643 writer.WriteAttributeString("DisableSystemRestore", "no");
3644 }
3645 if ((this.disableSystemRestoreField == YesNoType.yes))
3646 {
3647 writer.WriteAttributeString("DisableSystemRestore", "yes");
3648 }
3649 }
3650 if (this.parallelCacheFieldSet)
3651 {
3652 if ((this.parallelCacheField == YesNoType.no))
3653 {
3654 writer.WriteAttributeString("ParallelCache", "no");
3655 }
3656 if ((this.parallelCacheField == YesNoType.yes))
3657 {
3658 writer.WriteAttributeString("ParallelCache", "yes");
3659 }
3660 }
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
3669 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3670 void ISetAttributes.SetAttribute(string name, string value)
3671 {
3672 if (String.IsNullOrEmpty(name))
3673 {
3674 throw new ArgumentNullException("name");
3675 }
3676 if (("DisableRollback" == name))
3677 {
3678 this.disableRollbackField = Enums.ParseYesNoType(value);
3679 this.disableRollbackFieldSet = true;
3680 }
3681 if (("DisableSystemRestore" == name))
3682 {
3683 this.disableSystemRestoreField = Enums.ParseYesNoType(value);
3684 this.disableSystemRestoreFieldSet = true;
3685 }
3686 if (("ParallelCache" == name))
3687 {
3688 this.parallelCacheField = Enums.ParseYesNoType(value);
3689 this.parallelCacheFieldSet = true;
3690 }
3691 }
3692 }
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
3701 private ElementCollection children;
3702
3703 private string sourceFileField;
3704
3705 private bool sourceFileFieldSet;
3706
3707 private string nameField;
3708
3709 private bool nameFieldSet;
3710
3711 private string downloadUrlField;
3712
3713 private bool downloadUrlFieldSet;
3714
3715 private string idField;
3716
3717 private bool idFieldSet;
3718
3719 private string afterField;
3720
3721 private bool afterFieldSet;
3722
3723 private string installSizeField;
3724
3725 private bool installSizeFieldSet;
3726
3727 private string installConditionField;
3728
3729 private bool installConditionFieldSet;
3730
3731 private BundleCacheType cacheField;
3732
3733 private bool cacheFieldSet;
3734
3735 private string cacheIdField;
3736
3737 private bool cacheIdFieldSet;
3738
3739 private string displayNameField;
3740
3741 private bool displayNameFieldSet;
3742
3743 private string descriptionField;
3744
3745 private bool descriptionFieldSet;
3746
3747 private string logPathVariableField;
3748
3749 private bool logPathVariableFieldSet;
3750
3751 private string rollbackLogPathVariableField;
3752
3753 private bool rollbackLogPathVariableFieldSet;
3754
3755 private YesNoType permanentField;
3756
3757 private bool permanentFieldSet;
3758
3759 private YesNoType vitalField;
3760
3761 private bool vitalFieldSet;
3762
3763 private YesNoDefaultType compressedField;
3764
3765 private bool compressedFieldSet;
3766
3767 private YesNoType enableSignatureVerificationField;
3768
3769 private bool enableSignatureVerificationFieldSet;
3770
3771 private YesNoType enableFeatureSelectionField;
3772
3773 private bool enableFeatureSelectionFieldSet;
3774
3775 private YesNoType forcePerMachineField;
3776
3777 private bool forcePerMachineFieldSet;
3778
3779 private YesNoType suppressLooseFilePayloadGenerationField;
3780
3781 private bool suppressLooseFilePayloadGenerationFieldSet;
3782
3783 private YesNoType visibleField;
3784
3785 private bool visibleFieldSet;
3786
3787 private ISchemaElement parentElement;
3788
3789 public MsiPackage()
3790 {
3791 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
3792 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty)));
3793 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SlipstreamMsp)));
3794 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
3795 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
3796 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
3797 this.children = childCollection0;
3798 }
3799
3800 public virtual IEnumerable Children
3801 {
3802 get
3803 {
3804 return this.children;
3805 }
3806 }
3807
3808 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3809 public virtual IEnumerable this[System.Type childType]
3810 {
3811 get
3812 {
3813 return this.children.Filter(childType);
3814 }
3815 }
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.
3820 /// </summary>
3821 public string SourceFile
3822 {
3823 get
3824 {
3825 return this.sourceFileField;
3826 }
3827 set
3828 {
3829 this.sourceFileFieldSet = true;
3830 this.sourceFileField = value;
3831 }
3832 }
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
3837 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
3838 /// The use of '..' directories is not allowed.
3839 /// </summary>
3840 public string Name
3841 {
3842 get
3843 {
3844 return this.nameField;
3845 }
3846 set
3847 {
3848 this.nameFieldSet = true;
3849 this.nameField = value;
3850 }
3851 }
3852
3853 public string DownloadUrl
3854 {
3855 get
3856 {
3857 return this.downloadUrlField;
3858 }
3859 set
3860 {
3861 this.downloadUrlFieldSet = true;
3862 this.downloadUrlField = value;
3863 }
3864 }
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).
3869 /// </summary>
3870 public string Id
3871 {
3872 get
3873 {
3874 return this.idField;
3875 }
3876 set
3877 {
3878 this.idFieldSet = true;
3879 this.idField = value;
3880 }
3881 }
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
3886 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
3887 /// </summary>
3888 public string After
3889 {
3890 get
3891 {
3892 return this.afterField;
3893 }
3894 set
3895 {
3896 this.afterFieldSet = true;
3897 this.afterField = value;
3898 }
3899 }
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)
3904 /// and use the total for the install size of the package.
3905 /// </summary>
3906 public string InstallSize
3907 {
3908 get
3909 {
3910 return this.installSizeField;
3911 }
3912 set
3913 {
3914 this.installSizeFieldSet = true;
3915 this.installSizeField = value;
3916 }
3917 }
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>
3922 public string InstallCondition
3923 {
3924 get
3925 {
3926 return this.installConditionField;
3927 }
3928 set
3929 {
3930 this.installConditionFieldSet = true;
3931 this.installConditionField = value;
3932 }
3933 }
3934
3935 /// <summary>
3936 /// Whether to cache the package. The default is "yes".
3937 /// </summary>
3938 public BundleCacheType Cache
3939 {
3940 get
3941 {
3942 return this.cacheField;
3943 }
3944 set
3945 {
3946 this.cacheFieldSet = true;
3947 this.cacheField = value;
3948 }
3949 }
3950
3951 /// <summary>
3952 /// The identifier to use when caching the package.
3953 /// </summary>
3954 public string CacheId
3955 {
3956 get
3957 {
3958 return this.cacheIdField;
3959 }
3960 set
3961 {
3962 this.cacheIdFieldSet = true;
3963 this.cacheIdField = value;
3964 }
3965 }
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
3970 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
3971 /// bootstrapper application data manifest.
3972 /// </summary>
3973 public string DisplayName
3974 {
3975 get
3976 {
3977 return this.displayNameField;
3978 }
3979 set
3980 {
3981 this.displayNameFieldSet = true;
3982 this.displayNameField = value;
3983 }
3984 }
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
3989 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
3990 /// bootstrapper application data manifest.
3991 /// </summary>
3992 public string Description
3993 {
3994 get
3995 {
3996 return this.descriptionField;
3997 }
3998 set
3999 {
4000 this.descriptionFieldSet = true;
4001 this.descriptionField = value;
4002 }
4003 }
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.
4008 /// </summary>
4009 public string LogPathVariable
4010 {
4011 get
4012 {
4013 return this.logPathVariableField;
4014 }
4015 set
4016 {
4017 this.logPathVariableFieldSet = true;
4018 this.logPathVariableField = value;
4019 }
4020 }
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
4025 /// default to no logging.
4026 /// </summary>
4027 public string RollbackLogPathVariable
4028 {
4029 get
4030 {
4031 return this.rollbackLogPathVariableField;
4032 }
4033 set
4034 {
4035 this.rollbackLogPathVariableFieldSet = true;
4036 this.rollbackLogPathVariableField = value;
4037 }
4038 }
4039
4040 /// <summary>
4041 /// Specifies whether the package can be uninstalled. The default is "no".
4042 /// </summary>
4043 public YesNoType Permanent
4044 {
4045 get
4046 {
4047 return this.permanentField;
4048 }
4049 set
4050 {
4051 this.permanentFieldSet = true;
4052 this.permanentField = value;
4053 }
4054 }
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
4059 /// "no" is specified then the chain will continue even if the package reports failure.
4060 /// </summary>
4061 public YesNoType Vital
4062 {
4063 get
4064 {
4065 return this.vitalField;
4066 }
4067 set
4068 {
4069 this.vitalFieldSet = true;
4070 this.vitalField = value;
4071 }
4072 }
4073
4074 /// <summary>
4075 /// Whether the package payload should be embedded in a container or left as an external payload.
4076 /// </summary>
4077 public YesNoDefaultType Compressed
4078 {
4079 get
4080 {
4081 return this.compressedField;
4082 }
4083 set
4084 {
4085 this.compressedFieldSet = true;
4086 this.compressedField = value;
4087 }
4088 }
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
4093 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
4094 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
4095 /// </summary>
4096 public YesNoType EnableSignatureVerification
4097 {
4098 get
4099 {
4100 return this.enableSignatureVerificationField;
4101 }
4102 set
4103 {
4104 this.enableSignatureVerificationFieldSet = true;
4105 this.enableSignatureVerificationField = value;
4106 }
4107 }
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
4112 /// uninstall behavior of the package is always correct. The default is "no".
4113 /// </summary>
4114 public YesNoType EnableFeatureSelection
4115 {
4116 get
4117 {
4118 return this.enableFeatureSelectionField;
4119 }
4120 set
4121 {
4122 this.enableFeatureSelectionFieldSet = true;
4123 this.enableFeatureSelectionField = value;
4124 }
4125 }
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.
4130 /// </summary>
4131 public YesNoType ForcePerMachine
4132 {
4133 get
4134 {
4135 return this.forcePerMachineField;
4136 }
4137 set
4138 {
4139 this.forcePerMachineFieldSet = true;
4140 this.forcePerMachineField = value;
4141 }
4142 }
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.
4147 /// The resulting Bundle may not be able to install the MSI package correctly. The default is "no".
4148 /// </summary>
4149 public YesNoType SuppressLooseFilePayloadGeneration
4150 {
4151 get
4152 {
4153 return this.suppressLooseFilePayloadGenerationField;
4154 }
4155 set
4156 {
4157 this.suppressLooseFilePayloadGenerationFieldSet = true;
4158 this.suppressLooseFilePayloadGenerationField = value;
4159 }
4160 }
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
4165 /// will not be displayed.
4166 /// </summary>
4167 public YesNoType Visible
4168 {
4169 get
4170 {
4171 return this.visibleField;
4172 }
4173 set
4174 {
4175 this.visibleFieldSet = true;
4176 this.visibleField = value;
4177 }
4178 }
4179
4180 public virtual ISchemaElement ParentElement
4181 {
4182 get
4183 {
4184 return this.parentElement;
4185 }
4186 set
4187 {
4188 this.parentElement = value;
4189 }
4190 }
4191
4192 public virtual void AddChild(ISchemaElement child)
4193 {
4194 if ((null == child))
4195 {
4196 throw new ArgumentNullException("child");
4197 }
4198 this.children.AddElement(child);
4199 child.ParentElement = this;
4200 }
4201
4202 public virtual void RemoveChild(ISchemaElement child)
4203 {
4204 if ((null == child))
4205 {
4206 throw new ArgumentNullException("child");
4207 }
4208 this.children.RemoveElement(child);
4209 child.ParentElement = null;
4210 }
4211
4212 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4213 ISchemaElement ICreateChildren.CreateChild(string childName)
4214 {
4215 if (String.IsNullOrEmpty(childName))
4216 {
4217 throw new ArgumentNullException("childName");
4218 }
4219 ISchemaElement childValue = null;
4220 if (("MsiProperty" == childName))
4221 {
4222 childValue = new MsiProperty();
4223 }
4224 if (("SlipstreamMsp" == childName))
4225 {
4226 childValue = new SlipstreamMsp();
4227 }
4228 if (("Payload" == childName))
4229 {
4230 childValue = new Payload();
4231 }
4232 if (("PayloadGroupRef" == childName))
4233 {
4234 childValue = new PayloadGroupRef();
4235 }
4236 if ((null == childValue))
4237 {
4238 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
4239 }
4240 return childValue;
4241 }
4242
4243 /// <summary>
4244 /// Processes this element and all child elements into an XmlWriter.
4245 /// </summary>
4246 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4247 public virtual void OutputXml(XmlWriter writer)
4248 {
4249 if ((null == writer))
4250 {
4251 throw new ArgumentNullException("writer");
4252 }
4253 writer.WriteStartElement("MsiPackage", "http://wixtoolset.org/schemas/v4/wxs");
4254 if (this.sourceFileFieldSet)
4255 {
4256 writer.WriteAttributeString("SourceFile", this.sourceFileField);
4257 }
4258 if (this.nameFieldSet)
4259 {
4260 writer.WriteAttributeString("Name", this.nameField);
4261 }
4262 if (this.downloadUrlFieldSet)
4263 {
4264 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
4265 }
4266 if (this.idFieldSet)
4267 {
4268 writer.WriteAttributeString("Id", this.idField);
4269 }
4270 if (this.afterFieldSet)
4271 {
4272 writer.WriteAttributeString("After", this.afterField);
4273 }
4274 if (this.installSizeFieldSet)
4275 {
4276 writer.WriteAttributeString("InstallSize", this.installSizeField);
4277 }
4278 if (this.installConditionFieldSet)
4279 {
4280 writer.WriteAttributeString("InstallCondition", this.installConditionField);
4281 }
4282 if (this.cacheFieldSet)
4283 {
4284 if ((this.cacheField == BundleCacheType.force))
4285 {
4286 writer.WriteAttributeString("Cache", "force");
4287 }
4288 if ((this.cacheField == BundleCacheType.remove))
4289 {
4290 writer.WriteAttributeString("Cache", "remove");
4291 }
4292 if ((this.cacheField == BundleCacheType.keep))
4293 {
4294 writer.WriteAttributeString("Cache", "keep");
4295 }
4296 }
4297 if (this.cacheIdFieldSet)
4298 {
4299 writer.WriteAttributeString("CacheId", this.cacheIdField);
4300 }
4301 if (this.displayNameFieldSet)
4302 {
4303 writer.WriteAttributeString("DisplayName", this.displayNameField);
4304 }
4305 if (this.descriptionFieldSet)
4306 {
4307 writer.WriteAttributeString("Description", this.descriptionField);
4308 }
4309 if (this.logPathVariableFieldSet)
4310 {
4311 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
4312 }
4313 if (this.rollbackLogPathVariableFieldSet)
4314 {
4315 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
4316 }
4317 if (this.permanentFieldSet)
4318 {
4319 if ((this.permanentField == YesNoType.no))
4320 {
4321 writer.WriteAttributeString("Permanent", "no");
4322 }
4323 if ((this.permanentField == YesNoType.yes))
4324 {
4325 writer.WriteAttributeString("Permanent", "yes");
4326 }
4327 }
4328 if (this.vitalFieldSet)
4329 {
4330 if ((this.vitalField == YesNoType.no))
4331 {
4332 writer.WriteAttributeString("Vital", "no");
4333 }
4334 if ((this.vitalField == YesNoType.yes))
4335 {
4336 writer.WriteAttributeString("Vital", "yes");
4337 }
4338 }
4339 if (this.compressedFieldSet)
4340 {
4341 if ((this.compressedField == YesNoDefaultType.@default))
4342 {
4343 writer.WriteAttributeString("Compressed", "default");
4344 }
4345 if ((this.compressedField == YesNoDefaultType.no))
4346 {
4347 writer.WriteAttributeString("Compressed", "no");
4348 }
4349 if ((this.compressedField == YesNoDefaultType.yes))
4350 {
4351 writer.WriteAttributeString("Compressed", "yes");
4352 }
4353 }
4354 if (this.enableSignatureVerificationFieldSet)
4355 {
4356 if ((this.enableSignatureVerificationField == YesNoType.no))
4357 {
4358 writer.WriteAttributeString("EnableSignatureVerification", "no");
4359 }
4360 if ((this.enableSignatureVerificationField == YesNoType.yes))
4361 {
4362 writer.WriteAttributeString("EnableSignatureVerification", "yes");
4363 }
4364 }
4365 if (this.enableFeatureSelectionFieldSet)
4366 {
4367 if ((this.enableFeatureSelectionField == YesNoType.no))
4368 {
4369 writer.WriteAttributeString("EnableFeatureSelection", "no");
4370 }
4371 if ((this.enableFeatureSelectionField == YesNoType.yes))
4372 {
4373 writer.WriteAttributeString("EnableFeatureSelection", "yes");
4374 }
4375 }
4376 if (this.forcePerMachineFieldSet)
4377 {
4378 if ((this.forcePerMachineField == YesNoType.no))
4379 {
4380 writer.WriteAttributeString("ForcePerMachine", "no");
4381 }
4382 if ((this.forcePerMachineField == YesNoType.yes))
4383 {
4384 writer.WriteAttributeString("ForcePerMachine", "yes");
4385 }
4386 }
4387 if (this.suppressLooseFilePayloadGenerationFieldSet)
4388 {
4389 if ((this.suppressLooseFilePayloadGenerationField == YesNoType.no))
4390 {
4391 writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "no");
4392 }
4393 if ((this.suppressLooseFilePayloadGenerationField == YesNoType.yes))
4394 {
4395 writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "yes");
4396 }
4397 }
4398 if (this.visibleFieldSet)
4399 {
4400 if ((this.visibleField == YesNoType.no))
4401 {
4402 writer.WriteAttributeString("Visible", "no");
4403 }
4404 if ((this.visibleField == YesNoType.yes))
4405 {
4406 writer.WriteAttributeString("Visible", "yes");
4407 }
4408 }
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
4417 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4418 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4419 void ISetAttributes.SetAttribute(string name, string value)
4420 {
4421 if (String.IsNullOrEmpty(name))
4422 {
4423 throw new ArgumentNullException("name");
4424 }
4425 if (("SourceFile" == name))
4426 {
4427 this.sourceFileField = value;
4428 this.sourceFileFieldSet = true;
4429 }
4430 if (("Name" == name))
4431 {
4432 this.nameField = value;
4433 this.nameFieldSet = true;
4434 }
4435 if (("DownloadUrl" == name))
4436 {
4437 this.downloadUrlField = value;
4438 this.downloadUrlFieldSet = true;
4439 }
4440 if (("Id" == name))
4441 {
4442 this.idField = value;
4443 this.idFieldSet = true;
4444 }
4445 if (("After" == name))
4446 {
4447 this.afterField = value;
4448 this.afterFieldSet = true;
4449 }
4450 if (("InstallSize" == name))
4451 {
4452 this.installSizeField = value;
4453 this.installSizeFieldSet = true;
4454 }
4455 if (("InstallCondition" == name))
4456 {
4457 this.installConditionField = value;
4458 this.installConditionFieldSet = true;
4459 }
4460 if (("Cache" == name))
4461 {
4462 this.cacheField = Enums.ParseBundleCacheType(value);
4463 this.cacheFieldSet = true;
4464 }
4465 if (("CacheId" == name))
4466 {
4467 this.cacheIdField = value;
4468 this.cacheIdFieldSet = true;
4469 }
4470 if (("DisplayName" == name))
4471 {
4472 this.displayNameField = value;
4473 this.displayNameFieldSet = true;
4474 }
4475 if (("Description" == name))
4476 {
4477 this.descriptionField = value;
4478 this.descriptionFieldSet = true;
4479 }
4480 if (("LogPathVariable" == name))
4481 {
4482 this.logPathVariableField = value;
4483 this.logPathVariableFieldSet = true;
4484 }
4485 if (("RollbackLogPathVariable" == name))
4486 {
4487 this.rollbackLogPathVariableField = value;
4488 this.rollbackLogPathVariableFieldSet = true;
4489 }
4490 if (("Permanent" == name))
4491 {
4492 this.permanentField = Enums.ParseYesNoType(value);
4493 this.permanentFieldSet = true;
4494 }
4495 if (("Vital" == name))
4496 {
4497 this.vitalField = Enums.ParseYesNoType(value);
4498 this.vitalFieldSet = true;
4499 }
4500 if (("Compressed" == name))
4501 {
4502 this.compressedField = Enums.ParseYesNoDefaultType(value);
4503 this.compressedFieldSet = true;
4504 }
4505 if (("EnableSignatureVerification" == name))
4506 {
4507 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
4508 this.enableSignatureVerificationFieldSet = true;
4509 }
4510 if (("EnableFeatureSelection" == name))
4511 {
4512 this.enableFeatureSelectionField = Enums.ParseYesNoType(value);
4513 this.enableFeatureSelectionFieldSet = true;
4514 }
4515 if (("ForcePerMachine" == name))
4516 {
4517 this.forcePerMachineField = Enums.ParseYesNoType(value);
4518 this.forcePerMachineFieldSet = true;
4519 }
4520 if (("SuppressLooseFilePayloadGeneration" == name))
4521 {
4522 this.suppressLooseFilePayloadGenerationField = Enums.ParseYesNoType(value);
4523 this.suppressLooseFilePayloadGenerationFieldSet = true;
4524 }
4525 if (("Visible" == name))
4526 {
4527 this.visibleField = Enums.ParseYesNoType(value);
4528 this.visibleFieldSet = true;
4529 }
4530 }
4531 }
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
4540 private ElementCollection children;
4541
4542 private string sourceFileField;
4543
4544 private bool sourceFileFieldSet;
4545
4546 private string nameField;
4547
4548 private bool nameFieldSet;
4549
4550 private string downloadUrlField;
4551
4552 private bool downloadUrlFieldSet;
4553
4554 private string idField;
4555
4556 private bool idFieldSet;
4557
4558 private string afterField;
4559
4560 private bool afterFieldSet;
4561
4562 private string installSizeField;
4563
4564 private bool installSizeFieldSet;
4565
4566 private string installConditionField;
4567
4568 private bool installConditionFieldSet;
4569
4570 private BundleCacheType cacheField;
4571
4572 private bool cacheFieldSet;
4573
4574 private string cacheIdField;
4575
4576 private bool cacheIdFieldSet;
4577
4578 private string displayNameField;
4579
4580 private bool displayNameFieldSet;
4581
4582 private string descriptionField;
4583
4584 private bool descriptionFieldSet;
4585
4586 private string logPathVariableField;
4587
4588 private bool logPathVariableFieldSet;
4589
4590 private string rollbackLogPathVariableField;
4591
4592 private bool rollbackLogPathVariableFieldSet;
4593
4594 private YesNoType permanentField;
4595
4596 private bool permanentFieldSet;
4597
4598 private YesNoType vitalField;
4599
4600 private bool vitalFieldSet;
4601
4602 private YesNoDefaultType compressedField;
4603
4604 private bool compressedFieldSet;
4605
4606 private YesNoType enableSignatureVerificationField;
4607
4608 private bool enableSignatureVerificationFieldSet;
4609
4610 private YesNoDefaultType perMachineField;
4611
4612 private bool perMachineFieldSet;
4613
4614 private YesNoType slipstreamField;
4615
4616 private bool slipstreamFieldSet;
4617
4618 private ISchemaElement parentElement;
4619
4620 public MspPackage()
4621 {
4622 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
4623 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty)));
4624 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
4625 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
4626 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
4627 this.children = childCollection0;
4628 }
4629
4630 public virtual IEnumerable Children
4631 {
4632 get
4633 {
4634 return this.children;
4635 }
4636 }
4637
4638 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4639 public virtual IEnumerable this[System.Type childType]
4640 {
4641 get
4642 {
4643 return this.children.Filter(childType);
4644 }
4645 }
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.
4650 /// </summary>
4651 public string SourceFile
4652 {
4653 get
4654 {
4655 return this.sourceFileField;
4656 }
4657 set
4658 {
4659 this.sourceFileFieldSet = true;
4660 this.sourceFileField = value;
4661 }
4662 }
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
4667 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
4668 /// The use of '..' directories is not allowed.
4669 /// </summary>
4670 public string Name
4671 {
4672 get
4673 {
4674 return this.nameField;
4675 }
4676 set
4677 {
4678 this.nameFieldSet = true;
4679 this.nameField = value;
4680 }
4681 }
4682
4683 public string DownloadUrl
4684 {
4685 get
4686 {
4687 return this.downloadUrlField;
4688 }
4689 set
4690 {
4691 this.downloadUrlFieldSet = true;
4692 this.downloadUrlField = value;
4693 }
4694 }
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).
4699 /// </summary>
4700 public string Id
4701 {
4702 get
4703 {
4704 return this.idField;
4705 }
4706 set
4707 {
4708 this.idFieldSet = true;
4709 this.idField = value;
4710 }
4711 }
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
4716 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
4717 /// </summary>
4718 public string After
4719 {
4720 get
4721 {
4722 return this.afterField;
4723 }
4724 set
4725 {
4726 this.afterFieldSet = true;
4727 this.afterField = value;
4728 }
4729 }
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)
4734 /// and use the total for the install size of the package.
4735 /// </summary>
4736 public string InstallSize
4737 {
4738 get
4739 {
4740 return this.installSizeField;
4741 }
4742 set
4743 {
4744 this.installSizeFieldSet = true;
4745 this.installSizeField = value;
4746 }
4747 }
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>
4752 public string InstallCondition
4753 {
4754 get
4755 {
4756 return this.installConditionField;
4757 }
4758 set
4759 {
4760 this.installConditionFieldSet = true;
4761 this.installConditionField = value;
4762 }
4763 }
4764
4765 /// <summary>
4766 /// Whether to cache the package. The default is "keep".
4767 /// </summary>
4768 public BundleCacheType Cache
4769 {
4770 get
4771 {
4772 return this.cacheField;
4773 }
4774 set
4775 {
4776 this.cacheFieldSet = true;
4777 this.cacheField = value;
4778 }
4779 }
4780
4781 /// <summary>
4782 /// The identifier to use when caching the package.
4783 /// </summary>
4784 public string CacheId
4785 {
4786 get
4787 {
4788 return this.cacheIdField;
4789 }
4790 set
4791 {
4792 this.cacheIdFieldSet = true;
4793 this.cacheIdField = value;
4794 }
4795 }
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
4800 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
4801 /// bootstrapper application data manifest.
4802 /// </summary>
4803 public string DisplayName
4804 {
4805 get
4806 {
4807 return this.displayNameField;
4808 }
4809 set
4810 {
4811 this.displayNameFieldSet = true;
4812 this.displayNameField = value;
4813 }
4814 }
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
4819 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
4820 /// bootstrapper application data manifest.
4821 /// </summary>
4822 public string Description
4823 {
4824 get
4825 {
4826 return this.descriptionField;
4827 }
4828 set
4829 {
4830 this.descriptionFieldSet = true;
4831 this.descriptionField = value;
4832 }
4833 }
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.
4838 /// </summary>
4839 public string LogPathVariable
4840 {
4841 get
4842 {
4843 return this.logPathVariableField;
4844 }
4845 set
4846 {
4847 this.logPathVariableFieldSet = true;
4848 this.logPathVariableField = value;
4849 }
4850 }
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
4855 /// default to no logging.
4856 /// </summary>
4857 public string RollbackLogPathVariable
4858 {
4859 get
4860 {
4861 return this.rollbackLogPathVariableField;
4862 }
4863 set
4864 {
4865 this.rollbackLogPathVariableFieldSet = true;
4866 this.rollbackLogPathVariableField = value;
4867 }
4868 }
4869
4870 /// <summary>
4871 /// Specifies whether the package can be uninstalled. The default is "no".
4872 /// </summary>
4873 public YesNoType Permanent
4874 {
4875 get
4876 {
4877 return this.permanentField;
4878 }
4879 set
4880 {
4881 this.permanentFieldSet = true;
4882 this.permanentField = value;
4883 }
4884 }
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
4889 /// "no" is specified then the chain will continue even if the package reports failure.
4890 /// </summary>
4891 public YesNoType Vital
4892 {
4893 get
4894 {
4895 return this.vitalField;
4896 }
4897 set
4898 {
4899 this.vitalFieldSet = true;
4900 this.vitalField = value;
4901 }
4902 }
4903
4904 /// <summary>
4905 /// Whether the package payload should be embedded in a container or left as an external payload.
4906 /// </summary>
4907 public YesNoDefaultType Compressed
4908 {
4909 get
4910 {
4911 return this.compressedField;
4912 }
4913 set
4914 {
4915 this.compressedFieldSet = true;
4916 this.compressedField = value;
4917 }
4918 }
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
4923 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
4924 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
4925 /// </summary>
4926 public YesNoType EnableSignatureVerification
4927 {
4928 get
4929 {
4930 return this.enableSignatureVerificationField;
4931 }
4932 set
4933 {
4934 this.enableSignatureVerificationFieldSet = true;
4935 this.enableSignatureVerificationField = value;
4936 }
4937 }
4938
4939 /// <summary>
4940 /// Indicates the package must be executed elevated. The default is "no".
4941 /// </summary>
4942 public YesNoDefaultType PerMachine
4943 {
4944 get
4945 {
4946 return this.perMachineField;
4947 }
4948 set
4949 {
4950 this.perMachineFieldSet = true;
4951 this.perMachineField = value;
4952 }
4953 }
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.
4958 /// </summary>
4959 public YesNoType Slipstream
4960 {
4961 get
4962 {
4963 return this.slipstreamField;
4964 }
4965 set
4966 {
4967 this.slipstreamFieldSet = true;
4968 this.slipstreamField = value;
4969 }
4970 }
4971
4972 public virtual ISchemaElement ParentElement
4973 {
4974 get
4975 {
4976 return this.parentElement;
4977 }
4978 set
4979 {
4980 this.parentElement = value;
4981 }
4982 }
4983
4984 public virtual void AddChild(ISchemaElement child)
4985 {
4986 if ((null == child))
4987 {
4988 throw new ArgumentNullException("child");
4989 }
4990 this.children.AddElement(child);
4991 child.ParentElement = this;
4992 }
4993
4994 public virtual void RemoveChild(ISchemaElement child)
4995 {
4996 if ((null == child))
4997 {
4998 throw new ArgumentNullException("child");
4999 }
5000 this.children.RemoveElement(child);
Showing first 5,000 of 57,762 lines. View raw