@joebigelow / wix-1 / commits / ba3a735e

Modernize IIsCompiler and tuples.

Sean Hall committed Apr 5, 2020 at 21:01 UTC ba3a735e21086722c64caa001d618e5505a2e656
24 files changed +807 -848
src/test/WixToolsetTest.Iis/WixToolsetTest.Iis.csproj
+1 -1
@@ -3,7 +3,7 @@
3
4 <Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup>
6 - <TargetFramework>netcoreapp2.1</TargetFramework>
6 + <TargetFramework>netcoreapp3.1</TargetFramework>
7 <IsPackable>false</IsPackable>
8 </PropertyGroup>
9
src/wixext/IIsCompiler.cs
+327 -262
@@ -8,6 +8,7 @@ namespace WixToolset.Iis
8 using System.Xml.Linq;
9 using WixToolset.Data;
10 using WixToolset.Extensibility;
11 + using WixToolset.Iis.Tuples;
12
13 /// <summary>
14 /// The compiler for the WiX Toolset Internet Information Services Extension.
@@ -64,8 +65,8 @@ namespace WixToolset.Iis
65 switch (parentElement.Name.LocalName)
66 {
67 case "Component":
67 - string componentId = context["ComponentId"];
68 - string directoryId = context["DirectoryId"];
68 + var componentId = context["ComponentId"];
69 + var directoryId = context["DirectoryId"];
70
71 switch (element.Name.LocalName)
72 {
@@ -110,7 +111,7 @@ namespace WixToolset.Iis
111 this.ParseWebAppPoolElement(intermediate, section, element, null);
112 break;
113 case "WebDirProperties":
113 - this.ParseWebDirPropertiesElement(intermediate, section, element);
114 + this.ParseWebDirPropertiesElement(intermediate, section, element, null);
115 break;
116 case "WebLog":
117 this.ParseWebLogElement(intermediate, section, element);
@@ -136,7 +137,7 @@ namespace WixToolset.Iis
137 /// <param name="componentId">Identifier for parent component.</param>
138 private void ParseCertificateElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
139 {
139 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
140 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
141 Identifier id = null;
142 int attributes = 0;
143 string binaryKey = null;
@@ -146,7 +147,7 @@ namespace WixToolset.Iis
147 int storeLocation = 0;
148 string storeName = null;
149
149 - foreach (XAttribute attrib in element.Attributes())
150 + foreach (var attrib in element.Attributes())
151 {
152 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
153 {
@@ -158,7 +159,7 @@ namespace WixToolset.Iis
159 case "BinaryKey":
160 attributes |= 2; // SCA_CERT_ATTRIBUTE_BINARYDATA
161 binaryKey = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
161 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Binary", binaryKey);
162 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.Binary, binaryKey);
163 break;
164 case "CertificatePath":
165 certificatePath = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
@@ -190,7 +191,7 @@ namespace WixToolset.Iis
191 }
192 break;
193 case "StoreLocation":
193 - string storeLocationValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
194 + var storeLocationValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
195 if (0 < storeLocationValue.Length)
196 {
197 switch (storeLocationValue)
@@ -209,7 +210,7 @@ namespace WixToolset.Iis
210 }
211 break;
212 case "StoreName":
212 - string storeNameValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
213 + var storeNameValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
214 if (0 < storeNameValue.Length)
215 {
216 switch (storeNameValue)
@@ -256,7 +257,7 @@ namespace WixToolset.Iis
257
258 if (null == id)
259 {
259 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
260 + id = this.ParseHelper.CreateIdentifier("crt", componentId, binaryKey, certificatePath);
261 }
262
263 if (null == name)
@@ -286,21 +287,23 @@ namespace WixToolset.Iis
287 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
288
289 // Reference InstallCertificates and UninstallCertificates since nothing will happen without them
289 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "InstallCertificates");
290 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "UninstallCertificates");
291 - this.ParseHelper.EnsureTable(section, sourceLineNumbers, "CertificateHash"); // Certificate CustomActions require the CertificateHash table
290 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.CustomAction, "InstallCertificates");
291 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.CustomAction, "UninstallCertificates");
292 + this.ParseHelper.EnsureTable(section, sourceLineNumbers, IisTableDefinitions.CertificateHash); // Certificate CustomActions require the CertificateHash table
293
294 if (!this.Messaging.EncounteredError)
295 {
295 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "Certificate", id);
296 - row.Set(1, componentId);
297 - row.Set(2, name);
298 - row.Set(3, storeLocation);
299 - row.Set(4, storeName);
300 - row.Set(5, attributes);
301 - row.Set(6, binaryKey);
302 - row.Set(7, certificatePath);
303 - row.Set(8, pfxPassword);
296 + section.AddTuple(new CertificateTuple(sourceLineNumbers, id)
297 + {
298 + ComponentRef = componentId,
299 + Name = name,
300 + StoreLocation = storeLocation,
301 + StoreName = storeName,
302 + Attributes = attributes,
303 + BinaryRef = binaryKey,
304 + CertificatePath = certificatePath,
305 + PFXPassword = pfxPassword,
306 + });
307 }
308 }
309
@@ -311,10 +314,10 @@ namespace WixToolset.Iis
314 /// <param name="webId">Identifier for parent web site.</param>
315 private void ParseCertificateRefElement(Intermediate intermediate, IntermediateSection section, XElement element, string webId)
316 {
314 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
317 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
318 Identifier id = null;
319
317 - foreach (XAttribute attrib in element.Attributes())
320 + foreach (var attrib in element.Attributes())
321 {
322 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
323 {
@@ -322,7 +325,7 @@ namespace WixToolset.Iis
325 {
326 case "Id":
327 id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
325 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Certificate", id.Id);
328 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.Certificate, id.Id);
329 break;
330 default:
331 this.ParseHelper.UnexpectedAttribute(element, attrib);
@@ -337,18 +340,20 @@ namespace WixToolset.Iis
340
341 if (null == id)
342 {
340 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
343 + id = this.ParseHelper.CreateIdentifier("wsc", webId);
344 }
345
346 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
347
348 if (!this.Messaging.EncounteredError)
349 {
347 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Certificate", id.Id);
350 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.Certificate, id.Id);
351
349 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebSiteCertificates");
350 - row.Set(0, webId);
351 - row.Set(1, id.Id);
352 + section.AddTuple(new IIsWebSiteCertificatesTuple(sourceLineNumbers)
353 + {
354 + WebRef = webId,
355 + CertificateRef = id.Id,
356 + });
357 }
358 }
359
@@ -360,12 +365,12 @@ namespace WixToolset.Iis
365 /// <param name="parentType">Type that parentId refers to.</param>
366 private void ParseMimeMapElement(Intermediate intermediate, IntermediateSection section, XElement element, string parentId, MimeMapParentType parentType)
367 {
363 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
368 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
369 Identifier id = null;
370 string extension = null;
371 string type = null;
372
368 - foreach (XAttribute attrib in element.Attributes())
373 + foreach (var attrib in element.Attributes())
374 {
375 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
376 {
@@ -393,7 +398,7 @@ namespace WixToolset.Iis
398
399 if (null == id)
400 {
396 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
401 + id = this.ParseHelper.CreateIdentifier("imm", parentId, type, extension);
402 }
403
404 if (null == extension)
@@ -417,11 +422,13 @@ namespace WixToolset.Iis
422
423 if (!this.Messaging.EncounteredError)
424 {
420 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsMimeMap", id);
421 - row.Set(1, (int)parentType);
422 - row.Set(2, parentId);
423 - row.Set(3, type);
424 - row.Set(4, extension);
425 + section.AddTuple(new IIsMimeMapTuple(sourceLineNumbers, id)
426 + {
427 + ParentType = (int)parentType,
428 + ParentValue = parentId,
429 + MimeType = type,
430 + Extension = extension,
431 + });
432 }
433 }
434
@@ -432,10 +439,10 @@ namespace WixToolset.Iis
439 /// <returns>Recycle time value.</returns>
440 private string ParseRecycleTimeElement(Intermediate intermediate, IntermediateSection section, XElement element)
441 {
435 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
442 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
443 string value = null;
444
438 - foreach (XAttribute attrib in element.Attributes())
445 + foreach (var attrib in element.Attributes())
446 {
447 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
448 {
@@ -473,14 +480,14 @@ namespace WixToolset.Iis
480 /// <returns>Identifier for web address.</returns>
481 private string ParseWebAddressElement(Intermediate intermediate, IntermediateSection section, XElement element, string parentWeb)
482 {
476 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
483 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
484 Identifier id = null;
485 string header = null;
486 string ip = null;
487 string port = null;
481 - bool secure = false;
488 + var secure = false;
489
483 - foreach (XAttribute attrib in element.Attributes())
490 + foreach (var attrib in element.Attributes())
491 {
492 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
493 {
@@ -514,7 +521,7 @@ namespace WixToolset.Iis
521
522 if (null == id)
523 {
517 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
524 + id = this.ParseHelper.CreateIdentifier("iwa", parentWeb, ip, port);
525 }
526
527 if (null == port)
@@ -526,12 +533,14 @@ namespace WixToolset.Iis
533
534 if (!this.Messaging.EncounteredError)
535 {
529 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebAddress", id);
530 - row.Set(1, parentWeb);
531 - row.Set(2, ip);
532 - row.Set(3, port);
533 - row.Set(4, header);
534 - row.Set(5, secure ? 1 : 0);
536 + section.AddTuple(new IIsWebAddressTuple(sourceLineNumbers, id)
537 + {
538 + WebRef = parentWeb,
539 + IP = ip,
540 + Port = port,
541 + Header = header,
542 + Secure = secure ? 1 : 0,
543 + });
544 }
545
546 return id?.Id;
@@ -544,21 +553,21 @@ namespace WixToolset.Iis
553 /// <returns>Identifier for web application.</returns>
554 private string ParseWebApplicationElement(Intermediate intermediate, IntermediateSection section, XElement element)
555 {
547 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
556 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
557 Identifier id = null;
549 - YesNoDefaultType allowSessions = YesNoDefaultType.Default;
558 + var allowSessions = YesNoDefaultType.Default;
559 string appPool = null;
551 - YesNoDefaultType buffer = YesNoDefaultType.Default;
552 - YesNoDefaultType clientDebugging = YesNoDefaultType.Default;
560 + var buffer = YesNoDefaultType.Default;
561 + var clientDebugging = YesNoDefaultType.Default;
562 string defaultScript = null;
563 int isolation = 0;
564 string name = null;
556 - YesNoDefaultType parentPaths = YesNoDefaultType.Default;
557 - int scriptTimeout = CompilerConstants.IntegerNotSet;
558 - int sessionTimeout = CompilerConstants.IntegerNotSet;
559 - YesNoDefaultType serverDebugging = YesNoDefaultType.Default;
565 + var parentPaths = YesNoDefaultType.Default;
566 + var scriptTimeout = CompilerConstants.IntegerNotSet;
567 + var sessionTimeout = CompilerConstants.IntegerNotSet;
568 + var serverDebugging = YesNoDefaultType.Default;
569
561 - foreach (XAttribute attrib in element.Attributes())
570 + foreach (var attrib in element.Attributes())
571 {
572 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
573 {
@@ -630,7 +639,7 @@ namespace WixToolset.Iis
639 break;
640 case "WebAppPool":
641 appPool = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
633 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsAppPool", appPool);
642 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsAppPool, appPool);
643 break;
644 default:
645 this.ParseHelper.UnexpectedAttribute(element, attrib);
@@ -645,7 +654,7 @@ namespace WixToolset.Iis
654
655 if (null == id)
656 {
648 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
657 + id = this.ParseHelper.CreateIdentifier("wap", name, appPool);
658 }
659
660 if (null == name)
@@ -657,11 +666,10 @@ namespace WixToolset.Iis
666 this.Messaging.Write(IIsErrors.IllegalCharacterInAttributeValue(sourceLineNumbers, element.Name.LocalName, "Name", name, '\\'));
667 }
668
660 - foreach (XElement child in element.Elements())
669 + foreach (var child in element.Elements())
670 {
671 if (this.Namespace == child.Name.Namespace)
672 {
664 - SourceLineNumber childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
673 switch (child.Name.LocalName)
674 {
675 case "WebApplicationExtension":
@@ -680,44 +688,48 @@ namespace WixToolset.Iis
688
689 if (!this.Messaging.EncounteredError)
690 {
683 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebApplication", id);
684 - row.Set(1, name);
685 - row.Set(2, isolation);
691 + var tuple = section.AddTuple(new IIsWebApplicationTuple(sourceLineNumbers, id)
692 + {
693 + Name = name,
694 + Isolation = isolation,
695 + DefaultScript = defaultScript,
696 + AppPoolRef = appPool,
697 + });
698 +
699 if (YesNoDefaultType.Default != allowSessions)
700 {
688 - row.Set(3, YesNoDefaultType.Yes == allowSessions ? 1 : 0);
701 + tuple.AllowSessions = YesNoDefaultType.Yes == allowSessions ? 1 : 0;
702 }
703
704 if (CompilerConstants.IntegerNotSet != sessionTimeout)
705 {
693 - row.Set(4, sessionTimeout);
706 + tuple.SessionTimeout = sessionTimeout;
707 }
708
709 if (YesNoDefaultType.Default != buffer)
710 {
698 - row.Set(5, YesNoDefaultType.Yes == buffer ? 1 : 0);
711 + tuple.Buffer = YesNoDefaultType.Yes == buffer ? 1 : 0;
712 }
713
714 if (YesNoDefaultType.Default != parentPaths)
715 {
703 - row.Set(6, YesNoDefaultType.Yes == parentPaths ? 1 : 0);
716 + tuple.ParentPaths = YesNoDefaultType.Yes == parentPaths ? 1 : 0;
717 }
705 - row.Set(7, defaultScript);
718 +
719 if (CompilerConstants.IntegerNotSet != scriptTimeout)
720 {
708 - row.Set(8, scriptTimeout);
721 + tuple.ScriptTimeout = scriptTimeout;
722 }
723
724 if (YesNoDefaultType.Default != serverDebugging)
725 {
713 - row.Set(9, YesNoDefaultType.Yes == serverDebugging ? 1 : 0);
726 + tuple.ServerDebugging = YesNoDefaultType.Yes == serverDebugging ? 1 : 0;
727 }
728
729 if (YesNoDefaultType.Default != clientDebugging)
730 {
718 - row.Set(10, YesNoDefaultType.Yes == clientDebugging ? 1 : 0);
731 + tuple.ClientDebugging = YesNoDefaultType.Yes == clientDebugging ? 1 : 0;
732 }
720 - row.Set(11, appPool);
733 }
734
735 return id?.Id;
@@ -730,13 +742,13 @@ namespace WixToolset.Iis
742 /// <param name="application">Identifier for parent web application.</param>
743 private void ParseWebApplicationExtensionElement(Intermediate intermediate, IntermediateSection section, XElement element, string application)
744 {
733 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
745 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
746 int attributes = 0;
747 string executable = null;
748 string extension = null;
749 string verbs = null;
750
739 - foreach (XAttribute attrib in element.Attributes())
751 + foreach (var attrib in element.Attributes())
752 {
753 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
754 {
@@ -786,14 +798,17 @@ namespace WixToolset.Iis
798
799 if (!this.Messaging.EncounteredError)
800 {
789 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebApplicationExtension");
790 - row.Set(0, application);
791 - row.Set(1, extension);
792 - row.Set(2, verbs);
793 - row.Set(3, executable);
801 + var tuple = section.AddTuple(new IIsWebApplicationExtensionTuple(sourceLineNumbers)
802 + {
803 + ApplicationRef = application,
804 + Extension = extension,
805 + Verbs = verbs,
806 + Executable = executable,
807 + });
808 +
809 if (0 < attributes)
810 {
796 - row.Set(4, attributes);
811 + tuple.Attributes = attributes;
812 }
813 }
814 }
@@ -805,27 +820,27 @@ namespace WixToolset.Iis
820 /// <param name="componentId">Optional identifier of parent component.</param>
821 private void ParseWebAppPoolElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
822 {
808 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
823 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
824 Identifier id = null;
825 int attributes = 0;
811 - int cpuAction = CompilerConstants.IntegerNotSet;
826 + var cpuAction = CompilerConstants.IntegerNotSet;
827 string cpuMon = null;
813 - int idleTimeout = CompilerConstants.IntegerNotSet;
828 + var idleTimeout = CompilerConstants.IntegerNotSet;
829 int maxCpuUsage = 0;
815 - int maxWorkerProcs = CompilerConstants.IntegerNotSet;
830 + var maxWorkerProcs = CompilerConstants.IntegerNotSet;
831 string managedRuntimeVersion = null;
832 string managedPipelineMode = null;
833 string name = null;
819 - int privateMemory = CompilerConstants.IntegerNotSet;
820 - int queueLimit = CompilerConstants.IntegerNotSet;
821 - int recycleMinutes = CompilerConstants.IntegerNotSet;
822 - int recycleRequests = CompilerConstants.IntegerNotSet;
834 + var privateMemory = CompilerConstants.IntegerNotSet;
835 + var queueLimit = CompilerConstants.IntegerNotSet;
836 + var recycleMinutes = CompilerConstants.IntegerNotSet;
837 + var recycleRequests = CompilerConstants.IntegerNotSet;
838 string recycleTimes = null;
824 - int refreshCpu = CompilerConstants.IntegerNotSet;
839 + var refreshCpu = CompilerConstants.IntegerNotSet;
840 string user = null;
826 - int virtualMemory = CompilerConstants.IntegerNotSet;
841 + var virtualMemory = CompilerConstants.IntegerNotSet;
842
828 - foreach (XAttribute attrib in element.Attributes())
843 + foreach (var attrib in element.Attributes())
844 {
845 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
846 {
@@ -840,7 +855,7 @@ namespace WixToolset.Iis
855 this.Messaging.Write(IIsErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, element.Name.LocalName, attrib.Name.LocalName));
856 }
857
843 - string cpuActionValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
858 + var cpuActionValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
859 if (0 < cpuActionValue.Length)
860 {
861 switch (cpuActionValue)
@@ -863,7 +878,7 @@ namespace WixToolset.Iis
878 this.Messaging.Write(IIsErrors.IllegalAttributeWithoutComponent(sourceLineNumbers, element.Name.LocalName, attrib.Name.LocalName));
879 }
880
866 - string identityValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
881 + var identityValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
882 if (0 < identityValue.Length)
883 {
884 switch (identityValue)
@@ -1029,7 +1044,7 @@ namespace WixToolset.Iis
1044
1045 if (null == id)
1046 {
1032 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
1047 + id = this.ParseHelper.CreateIdentifier("iap", name, componentId, user);
1048 }
1049
1050 if (null == name)
@@ -1057,7 +1072,7 @@ namespace WixToolset.Iis
1072 }
1073 }
1074
1060 - foreach (XElement child in element.Elements())
1075 + foreach (var child in element.Elements())
1076 {
1077 if (this.Namespace == child.Name.Namespace)
1078 {
@@ -1066,7 +1081,7 @@ namespace WixToolset.Iis
1081 case "RecycleTime":
1082 if (null == componentId)
1083 {
1069 - SourceLineNumber childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
1084 + var childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
1085 this.Messaging.Write(IIsErrors.IllegalElementWithoutComponent(childSourceLineNumbers, element.Name.LocalName));
1086 }
1087
@@ -1093,52 +1108,57 @@ namespace WixToolset.Iis
1108 if (null != componentId)
1109 {
1110 // Reference ConfigureIIs since nothing will happen without it
1096 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
1111 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
1112 }
1113
1114 if (!this.Messaging.EncounteredError)
1115 {
1101 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsAppPool", id);
1102 - row.Set(1, name);
1103 - row.Set(2, componentId);
1104 - row.Set(3, attributes);
1105 - row.Set(4, user);
1116 + var tuple = section.AddTuple(new IIsAppPoolTuple(sourceLineNumbers, id)
1117 + {
1118 + Name = name,
1119 + ComponentRef = componentId,
1120 + Attributes = attributes,
1121 + UserRef = user,
1122 + RecycleTimes = recycleTimes,
1123 + CPUMon = cpuMon,
1124 + ManagedRuntimeVersion = managedRuntimeVersion,
1125 + ManagedPipelineMode = managedPipelineMode,
1126 + });
1127 +
1128 if (CompilerConstants.IntegerNotSet != recycleMinutes)
1129 {
1108 - row.Set(5, recycleMinutes);
1130 + tuple.RecycleMinutes = recycleMinutes;
1131 }
1132
1133 if (CompilerConstants.IntegerNotSet != recycleRequests)
1134 {
1113 - row.Set(6, recycleRequests);
1135 + tuple.RecycleRequests = recycleRequests;
1136 }
1115 - row.Set(7, recycleTimes);
1137 +
1138 if (CompilerConstants.IntegerNotSet != idleTimeout)
1139 {
1118 - row.Set(8, idleTimeout);
1140 + tuple.IdleTimeout = idleTimeout;
1141 }
1142
1143 if (CompilerConstants.IntegerNotSet != queueLimit)
1144 {
1123 - row.Set(9, queueLimit);
1145 + tuple.QueueLimit = queueLimit;
1146 }
1125 - row.Set(10, cpuMon);
1147 +
1148 if (CompilerConstants.IntegerNotSet != maxWorkerProcs)
1149 {
1128 - row.Set(11, maxWorkerProcs);
1150 + tuple.MaxProc = maxWorkerProcs;
1151 }
1152
1153 if (CompilerConstants.IntegerNotSet != virtualMemory)
1154 {
1133 - row.Set(12, virtualMemory);
1155 + tuple.VirtualMemory = virtualMemory;
1156 }
1157
1158 if (CompilerConstants.IntegerNotSet != privateMemory)
1159 {
1138 - row.Set(13, privateMemory);
1160 + tuple.PrivateMemory = privateMemory;
1161 }
1140 - row.Set(14, managedRuntimeVersion);
1141 - row.Set(15, managedPipelineMode);
1162 }
1163 }
1164
@@ -1150,13 +1170,13 @@ namespace WixToolset.Iis
1170 /// <param name="parentWeb">Optional identifier for parent web site.</param>
1171 private void ParseWebDirElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string parentWeb)
1172 {
1153 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1173 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1174 Identifier id = null;
1175 string dirProperties = null;
1176 string path = null;
1177 string application = null;
1178
1159 - foreach (XAttribute attrib in element.Attributes())
1179 + foreach (var attrib in element.Attributes())
1180 {
1181 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
1182 {
@@ -1181,7 +1201,7 @@ namespace WixToolset.Iis
1201 }
1202
1203 parentWeb = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1184 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebSite", parentWeb);
1204 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebSite, parentWeb);
1205 break;
1206 default:
1207 this.ParseHelper.UnexpectedAttribute(element, attrib);
@@ -1196,7 +1216,7 @@ namespace WixToolset.Iis
1216
1217 if (null == id)
1218 {
1199 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
1219 + id = this.ParseHelper.CreateIdentifier("iwd", componentId, parentWeb, dirProperties, application);
1220 }
1221
1222 if (null == path)
@@ -1209,11 +1229,11 @@ namespace WixToolset.Iis
1229 this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "WebSite"));
1230 }
1231
1212 - foreach (XElement child in element.Elements())
1232 + foreach (var child in element.Elements())
1233 {
1234 if (this.Namespace == child.Name.Namespace)
1235 {
1216 - SourceLineNumber childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
1236 + var childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
1237 switch (child.Name.LocalName)
1238 {
1239 case "WebApplication":
@@ -1230,7 +1250,7 @@ namespace WixToolset.Iis
1250 this.Messaging.Write(IIsErrors.IllegalElementWithoutComponent(childSourceLineNumbers, child.Name.LocalName));
1251 }
1252
1233 - string childWebDirProperties = this.ParseWebDirPropertiesElement(intermediate, section, child);
1253 + string childWebDirProperties = this.ParseWebDirPropertiesElement(intermediate, section, child, componentId);
1254 if (null == dirProperties)
1255 {
1256 dirProperties = childWebDirProperties;
@@ -1258,22 +1278,24 @@ namespace WixToolset.Iis
1278
1279 if (null != application)
1280 {
1261 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebApplication", application);
1281 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebApplication, application);
1282 }
1283
1264 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebDirProperties", dirProperties);
1284 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebDirProperties, dirProperties);
1285
1286 // Reference ConfigureIIs since nothing will happen without it
1267 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
1287 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
1288
1289 if (!this.Messaging.EncounteredError)
1290 {
1271 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebDir", id);
1272 - row.Set(1, componentId);
1273 - row.Set(2, parentWeb);
1274 - row.Set(3, path);
1275 - row.Set(4, dirProperties);
1276 - row.Set(5, application);
1291 + section.AddTuple(new IIsWebDirTuple(sourceLineNumbers, id)
1292 + {
1293 + ComponentRef = componentId,
1294 + WebRef = parentWeb,
1295 + Path = path,
1296 + DirPropertiesRef = dirProperties,
1297 + ApplicationRef = application,
1298 + });
1299 }
1300 }
1301
@@ -1282,29 +1304,29 @@ namespace WixToolset.Iis
1304 /// </summary>
1305 /// <param name="element">Element to parse.</param>
1306 /// <returns>The identifier for this WebDirProperties.</returns>
1285 - private string ParseWebDirPropertiesElement(Intermediate intermediate, IntermediateSection section, XElement element)
1307 + private string ParseWebDirPropertiesElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
1308 {
1287 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1309 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1310 Identifier id = null;
1311 int access = 0;
1290 - bool accessSet = false;
1312 + var accessSet = false;
1313 int accessSSLFlags = 0;
1292 - bool accessSSLFlagsSet = false;
1314 + var accessSSLFlagsSet = false;
1315 string anonymousUser = null;
1294 - YesNoType aspDetailedError = YesNoType.NotSet;
1316 + var aspDetailedError = YesNoType.NotSet;
1317 string authenticationProviders = null;
1318 int authorization = 0;
1297 - bool authorizationSet = false;
1319 + var authorizationSet = false;
1320 string cacheControlCustom = null;
1299 - long cacheControlMaxAge = CompilerConstants.LongNotSet;
1321 + var cacheControlMaxAge = CompilerConstants.LongNotSet;
1322 string defaultDocuments = null;
1323 string httpExpires = null;
1302 - bool iisControlledPassword = false;
1303 - YesNoType index = YesNoType.NotSet;
1304 - YesNoType logVisits = YesNoType.NotSet;
1305 - YesNoType notCustomError = YesNoType.NotSet;
1324 + var iisControlledPassword = false;
1325 + var index = YesNoType.NotSet;
1326 + var logVisits = YesNoType.NotSet;
1327 + var notCustomError = YesNoType.NotSet;
1328
1307 - foreach (XAttribute attrib in element.Attributes())
1329 + foreach (var attrib in element.Attributes())
1330 {
1331 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
1332 {
@@ -1520,58 +1542,73 @@ namespace WixToolset.Iis
1542
1543 if (null == id)
1544 {
1523 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
1545 + if (null == componentId)
1546 + {
1547 + this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
1548 + id = Identifier.Invalid;
1549 + }
1550 + else
1551 + {
1552 + id = this.ParseHelper.CreateIdentifier("wdp", componentId);
1553 + }
1554 }
1555
1556 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
1557
1558 if (!this.Messaging.EncounteredError)
1559 {
1530 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebDirProperties", id);
1560 + var tuple = section.AddTuple(new IIsWebDirPropertiesTuple(sourceLineNumbers, id)
1561 + {
1562 + AnonymousUserRef = anonymousUser,
1563 + IIsControlledPassword = iisControlledPassword ? 1 : 0,
1564 + DefaultDoc = defaultDocuments,
1565 + HttpExpires = httpExpires,
1566 + CacheControlCustom = cacheControlCustom,
1567 + });
1568 +
1569 if (accessSet)
1570 {
1533 - row.Set(1, access);
1571 + tuple.Access = access;
1572 }
1573
1574 if (authorizationSet)
1575 {
1538 - row.Set(2, authorization);
1576 + tuple.Authorization = authorization;
1577 }
1540 - row.Set(3, anonymousUser);
1541 - row.Set(4, iisControlledPassword ? 1 : 0);
1578 +
1579 if (YesNoType.NotSet != logVisits)
1580 {
1544 - row.Set(5, YesNoType.Yes == logVisits ? 1 : 0);
1581 + tuple.LogVisits = YesNoType.Yes == logVisits ? 1 : 0;
1582 }
1583
1584 if (YesNoType.NotSet != index)
1585 {
1549 - row.Set(6, YesNoType.Yes == index ? 1 : 0);
1586 + tuple.Index = YesNoType.Yes == index ? 1 : 0;
1587 }
1551 - row.Set(7, defaultDocuments);
1588 +
1589 if (YesNoType.NotSet != aspDetailedError)
1590 {
1554 - row.Set(8, YesNoType.Yes == aspDetailedError ? 1 : 0);
1591 + tuple.AspDetailedError = YesNoType.Yes == aspDetailedError ? 1 : 0;
1592 }
1556 - row.Set(9, httpExpires);
1593 +
1594 if (CompilerConstants.LongNotSet != cacheControlMaxAge)
1595 {
1559 - row.Set(10, unchecked((int)cacheControlMaxAge));
1596 + tuple.CacheControlMaxAge = unchecked((int)cacheControlMaxAge);
1597 }
1561 - row.Set(11, cacheControlCustom);
1598 +
1599 if (YesNoType.NotSet != notCustomError)
1600 {
1564 - row.Set(12, YesNoType.Yes == notCustomError ? 1 : 0);
1601 + tuple.NoCustomError = YesNoType.Yes == notCustomError ? 1 : 0;
1602 }
1603
1604 if (accessSSLFlagsSet)
1605 {
1569 - row.Set(13, accessSSLFlags);
1606 + tuple.AccessSSLFlags = accessSSLFlags;
1607 }
1608
1609 if (null != authenticationProviders)
1610 {
1574 - row.Set(14, authenticationProviders);
1611 + tuple.AuthenticationProviders = authenticationProviders;
1612 }
1613 }
1614
@@ -1586,13 +1623,13 @@ namespace WixToolset.Iis
1623 /// <param name="parent">Id of the parent.</param>
1624 private void ParseWebErrorElement(Intermediate intermediate, IntermediateSection section, XElement element, WebErrorParentType parentType, string parent)
1625 {
1589 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1590 - int errorCode = CompilerConstants.IntegerNotSet;
1626 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1627 + var errorCode = CompilerConstants.IntegerNotSet;
1628 string file = null;
1629 string url = null;
1593 - int subCode = CompilerConstants.IntegerNotSet;
1630 + var subCode = CompilerConstants.IntegerNotSet;
1631
1595 - foreach (XAttribute attrib in element.Attributes())
1632 + foreach (var attrib in element.Attributes())
1633 {
1634 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
1635 {
@@ -1641,17 +1678,19 @@ namespace WixToolset.Iis
1678 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
1679
1680 // Reference ConfigureIIs since nothing will happen without it
1644 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
1681 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
1682
1683 if (!this.Messaging.EncounteredError)
1684 {
1648 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebError");
1649 - row.Set(0, errorCode);
1650 - row.Set(1, subCode);
1651 - row.Set(2, (int)parentType);
1652 - row.Set(3, parent);
1653 - row.Set(4, file);
1654 - row.Set(5, url);
1685 + section.AddTuple(new IIsWebErrorTuple(sourceLineNumbers)
1686 + {
1687 + ErrorCode = errorCode,
1688 + SubCode = subCode,
1689 + ParentType = (int)parentType,
1690 + ParentValue = parent,
1691 + File = file,
1692 + URL = url,
1693 + });
1694 }
1695 }
1696
@@ -1663,15 +1702,15 @@ namespace WixToolset.Iis
1702 /// <param name="parentWeb">Optional identifier of parent web site.</param>
1703 private void ParseWebFilterElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string parentWeb)
1704 {
1666 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1705 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1706 Identifier id = null;
1707 string description = null;
1708 int flags = 0;
1670 - int loadOrder = CompilerConstants.IntegerNotSet;
1709 + var loadOrder = CompilerConstants.IntegerNotSet;
1710 string name = null;
1711 string path = null;
1712
1674 - foreach (XAttribute attrib in element.Attributes())
1713 + foreach (var attrib in element.Attributes())
1714 {
1715 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
1716 {
@@ -1717,7 +1756,7 @@ namespace WixToolset.Iis
1756 }
1757
1758 parentWeb = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1720 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebSite", parentWeb);
1759 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebSite, parentWeb);
1760 break;
1761 default:
1762 this.ParseHelper.UnexpectedAttribute(element, attrib);
@@ -1732,7 +1771,7 @@ namespace WixToolset.Iis
1771
1772 if (null == id)
1773 {
1735 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
1774 + id = this.ParseHelper.CreateIdentifier("ifl", name, componentId, path, parentWeb);
1775 }
1776
1777 if (null == name)
@@ -1748,20 +1787,23 @@ namespace WixToolset.Iis
1787 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
1788
1789 // Reference ConfigureIIs since nothing will happen without it
1751 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
1790 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
1791
1792 if (!this.Messaging.EncounteredError)
1793 {
1755 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsFilter", id);
1756 - row.Set(1, name);
1757 - row.Set(2, componentId);
1758 - row.Set(3, path);
1759 - row.Set(4, parentWeb);
1760 - row.Set(5, description);
1761 - row.Set(6, flags);
1794 + var tuple = section.AddTuple(new IIsFilterTuple(sourceLineNumbers, id)
1795 + {
1796 + Name = name,
1797 + ComponentRef = componentId,
1798 + Path = path,
1799 + WebRef = parentWeb,
1800 + Description = description,
1801 + Flags = flags,
1802 + });
1803 +
1804 if (CompilerConstants.IntegerNotSet != loadOrder)
1805 {
1764 - row.Set(7, loadOrder);
1806 + tuple.LoadOrder = loadOrder;
1807 }
1808 }
1809 }
@@ -1772,11 +1814,11 @@ namespace WixToolset.Iis
1814 /// <param name="element">Node to be parsed.</param>
1815 private void ParseWebLogElement(Intermediate intermediate, IntermediateSection section, XElement element)
1816 {
1775 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1817 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1818 Identifier id = null;
1819 string type = null;
1820
1779 - foreach (XAttribute attrib in element.Attributes())
1821 + foreach (var attrib in element.Attributes())
1822 {
1823 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
1824 {
@@ -1786,7 +1828,7 @@ namespace WixToolset.Iis
1828 id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
1829 break;
1830 case "Type":
1789 - string typeValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1831 + var typeValue = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1832 if (0 < typeValue.Length)
1833 {
1834 switch (typeValue)
@@ -1837,8 +1879,10 @@ namespace WixToolset.Iis
1879
1880 if (!this.Messaging.EncounteredError)
1881 {
1840 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebLog", id);
1841 - row.Set(1, type);
1882 + section.AddTuple(new IIsWebLogTuple(sourceLineNumbers, id)
1883 + {
1884 + Format = type,
1885 + });
1886 }
1887 }
1888
@@ -1849,11 +1893,11 @@ namespace WixToolset.Iis
1893 /// <param name="componentId">Identifier for parent component.</param>
1894 private void ParseWebPropertyElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
1895 {
1852 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1896 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1897 Identifier id = null;
1898 string value = null;
1899
1856 - foreach (XAttribute attrib in element.Attributes())
1900 + foreach (var attrib in element.Attributes())
1901 {
1902 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
1903 {
@@ -1902,14 +1946,16 @@ namespace WixToolset.Iis
1946 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
1947
1948 // Reference ConfigureIIs since nothing will happen without it
1905 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
1949 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
1950
1951 if (!this.Messaging.EncounteredError)
1952 {
1909 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsProperty", id);
1910 - row.Set(1, componentId);
1911 - row.Set(2, 0);
1912 - row.Set(3, value);
1953 + section.AddTuple(new IIsPropertyTuple(sourceLineNumbers, id)
1954 + {
1955 + ComponentRef = componentId,
1956 + Attributes = 0,
1957 + Value = value,
1958 + });
1959 }
1960 }
1961
@@ -1920,7 +1966,7 @@ namespace WixToolset.Iis
1966 /// <param name="componentId">Identifier for parent component.</param>
1967 private void ParseWebServiceExtensionElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
1968 {
1923 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1969 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1970 Identifier id = null;
1971 int attributes = 0;
1972 string description = null;
@@ -1978,7 +2024,7 @@ namespace WixToolset.Iis
2024
2025 if (null == id)
2026 {
1981 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
2027 + id = this.ParseHelper.CreateIdentifier("iwe", componentId, file);
2028 }
2029
2030 if (null == file)
@@ -1989,16 +2035,18 @@ namespace WixToolset.Iis
2035 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
2036
2037 // Reference ConfigureIIs since nothing will happen without it
1992 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
2038 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
2039
2040 if (!this.Messaging.EncounteredError)
2041 {
1996 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebServiceExtension", id);
1997 - row.Set(1, componentId);
1998 - row.Set(2, file);
1999 - row.Set(3, description);
2000 - row.Set(4, group);
2001 - row.Set(5, attributes);
2042 + section.AddTuple(new IIsWebServiceExtensionTuple(sourceLineNumbers, id)
2043 + {
2044 + ComponentRef = componentId,
2045 + File = file,
2046 + Description = description,
2047 + Group = group,
2048 + Attributes = attributes,
2049 + });
2050 }
2051 }
2052
@@ -2009,21 +2057,21 @@ namespace WixToolset.Iis
2057 /// <param name="componentId">Optional identifier of parent component.</param>
2058 private void ParseWebSiteElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
2059 {
2012 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
2060 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
2061 Identifier id = null;
2062 string application = null;
2063 int attributes = 0;
2016 - int connectionTimeout = CompilerConstants.IntegerNotSet;
2064 + var connectionTimeout = CompilerConstants.IntegerNotSet;
2065 string description = null;
2066 string directory = null;
2067 string dirProperties = null;
2068 string keyAddress = null;
2069 string log = null;
2070 string siteId = null;
2023 - int sequence = CompilerConstants.IntegerNotSet;
2024 - int state = CompilerConstants.IntegerNotSet;
2071 + var sequence = CompilerConstants.IntegerNotSet;
2072 + var state = CompilerConstants.IntegerNotSet;
2073
2026 - foreach (XAttribute attrib in element.Attributes())
2074 + foreach (var attrib in element.Attributes())
2075 {
2076 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
2077 {
@@ -2070,7 +2118,7 @@ namespace WixToolset.Iis
2118 break;
2119 case "Directory":
2120 directory = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2073 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Directory", directory);
2121 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.Directory, directory);
2122 break;
2123 case "DirProperties":
2124 if (null == componentId)
@@ -2121,7 +2169,7 @@ namespace WixToolset.Iis
2169 }
2170
2171 log = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2124 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebLog", log);
2172 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebLog, log);
2173 break;
2174 default:
2175 this.ParseHelper.UnexpectedAttribute(element, attrib);
@@ -2136,7 +2184,7 @@ namespace WixToolset.Iis
2184
2185 if (null == id)
2186 {
2139 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
2187 + id = this.ParseHelper.CreateIdentifier("iws", description, componentId, siteId, application);
2188 }
2189
2190 if (null == description)
@@ -2149,11 +2197,11 @@ namespace WixToolset.Iis
2197 this.Messaging.Write(IIsErrors.RequiredAttributeUnderComponent(sourceLineNumbers, element.Name.LocalName, "Directory"));
2198 }
2199
2152 - foreach (XElement child in element.Elements())
2200 + foreach (var child in element.Elements())
2201 {
2202 if (this.Namespace == child.Name.Namespace)
2203 {
2156 - SourceLineNumber childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
2204 + var childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
2205 switch (child.Name.LocalName)
2206 {
2207 case "CertificateRef":
@@ -2206,7 +2254,7 @@ namespace WixToolset.Iis
2254 this.Messaging.Write(IIsErrors.IllegalElementWithoutComponent(childSourceLineNumbers, child.Name.LocalName));
2255 }
2256
2209 - string childWebDirProperties = this.ParseWebDirPropertiesElement(intermediate, section, child);
2257 + string childWebDirProperties = this.ParseWebDirPropertiesElement(intermediate, section, child, componentId);
2258 if (null == dirProperties)
2259 {
2260 dirProperties = childWebDirProperties;
@@ -2262,48 +2310,53 @@ namespace WixToolset.Iis
2310
2311 if (null != application)
2312 {
2265 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebApplication", application);
2313 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebApplication, application);
2314 }
2315
2316 if (null != dirProperties)
2317 {
2270 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebDirProperties", dirProperties);
2318 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebDirProperties, dirProperties);
2319 }
2320
2321 if (null != componentId)
2322 {
2323 // Reference ConfigureIIs since nothing will happen without it
2276 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
2324 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
2325 }
2326
2327 if (!this.Messaging.EncounteredError)
2328 {
2281 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebSite", id);
2282 - row.Set(1, componentId);
2283 - row.Set(2, description);
2329 + var tuple = section.AddTuple(new IIsWebSiteTuple(sourceLineNumbers, id)
2330 + {
2331 + ComponentRef = componentId,
2332 + Description = description,
2333 + DirectoryRef = directory,
2334 + KeyAddressRef = keyAddress,
2335 + DirPropertiesRef = dirProperties,
2336 + ApplicationRef = application,
2337 + LogRef = log,
2338 + WebsiteId = siteId,
2339 + });
2340 +
2341 if (CompilerConstants.IntegerNotSet != connectionTimeout)
2342 {
2286 - row.Set(3, connectionTimeout);
2343 + tuple.ConnectionTimeout = connectionTimeout;
2344 }
2288 - row.Set(4, directory);
2345 +
2346 if (CompilerConstants.IntegerNotSet != state)
2347 {
2291 - row.Set(5, state);
2348 + tuple.State = state;
2349 }
2350
2351 if (0 != attributes)
2352 {
2296 - row.Set(6, attributes);
2353 + tuple.Attributes = attributes;
2354 }
2298 - row.Set(7, keyAddress);
2299 - row.Set(8, dirProperties);
2300 - row.Set(9, application);
2355 +
2356 if (CompilerConstants.IntegerNotSet != sequence)
2357 {
2303 - row.Set(10, sequence);
2358 + tuple.Sequence = sequence;
2359 }
2305 - row.Set(11, log);
2306 - row.Set(12, siteId);
2360 }
2361 }
2362
@@ -2315,12 +2368,12 @@ namespace WixToolset.Iis
2368 /// <param name="parent">Id of the parent.</param>
2369 private void ParseHttpHeaderElement(Intermediate intermediate, IntermediateSection section, XElement element, HttpHeaderParentType parentType, string parent)
2370 {
2318 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
2371 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
2372 Identifier id = null;
2373 string headerName = null;
2374 string headerValue = null;
2375
2323 - foreach (XAttribute attrib in element.Attributes())
2376 + foreach (var attrib in element.Attributes())
2377 {
2378 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
2379 {
@@ -2358,15 +2411,20 @@ namespace WixToolset.Iis
2411 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
2412
2413 // Reference ConfigureIIs since nothing will happen without it
2361 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
2362 -
2363 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsHttpHeader", id);
2364 - row.Set(1, (int)parentType);
2365 - row.Set(2, parent);
2366 - row.Set(3, headerName);
2367 - row.Set(4, headerValue);
2368 - row.Set(5, 0);
2369 - //row.Set(6, null);
2414 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
2415 +
2416 + if (!this.Messaging.EncounteredError)
2417 + {
2418 + section.AddTuple(new IIsHttpHeaderTuple(sourceLineNumbers, id)
2419 + {
2420 + HttpHeader = id.Id,
2421 + ParentType = (int)parentType,
2422 + ParentValue = parent,
2423 + Name = headerName,
2424 + Value = headerValue,
2425 + Attributes = 0,
2426 + });
2427 + }
2428 }
2429
2430 /// <summary>
@@ -2378,14 +2436,14 @@ namespace WixToolset.Iis
2436 /// <param name="parentAlias">Alias of the parent web site.</param>
2437 private void ParseWebVirtualDirElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string parentWeb, string parentAlias)
2438 {
2381 - SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
2439 + var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
2440 Identifier id = null;
2441 string alias = null;
2442 string application = null;
2443 string directory = null;
2444 string dirProperties = null;
2445
2388 - foreach (XAttribute attrib in element.Attributes())
2446 + foreach (var attrib in element.Attributes())
2447 {
2448 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
2449 {
@@ -2399,7 +2457,7 @@ namespace WixToolset.Iis
2457 break;
2458 case "Directory":
2459 directory = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2402 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Directory", directory);
2460 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.Directory, directory);
2461 break;
2462 case "DirProperties":
2463 dirProperties = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
@@ -2414,7 +2472,7 @@ namespace WixToolset.Iis
2472 }
2473
2474 parentWeb = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
2417 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebSite", parentWeb);
2475 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebSite, parentWeb);
2476 break;
2477 default:
2478 this.ParseHelper.UnexpectedAttribute(element, attrib);
@@ -2429,7 +2487,7 @@ namespace WixToolset.Iis
2487
2488 if (null == id)
2489 {
2432 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "Id"));
2490 + id = this.ParseHelper.CreateIdentifier("wvd", alias, directory, dirProperties, application, parentWeb);
2491 }
2492
2493 if (null == alias)
@@ -2461,11 +2519,11 @@ namespace WixToolset.Iis
2519 alias = String.Concat(parentAlias, "/", alias);
2520 }
2521
2464 - foreach (XElement child in element.Elements())
2522 + foreach (var child in element.Elements())
2523 {
2524 if (this.Namespace == child.Name.Namespace)
2525 {
2468 - SourceLineNumber childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
2526 + var childSourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(child);
2527 switch (child.Name.LocalName)
2528 {
2529 case "WebApplication":
@@ -2482,7 +2540,7 @@ namespace WixToolset.Iis
2540 this.Messaging.Write(IIsErrors.IllegalElementWithoutComponent(childSourceLineNumbers, child.Name.LocalName));
2541 }
2542
2485 - string childWebDirProperties = this.ParseWebDirPropertiesElement(intermediate, section, child);
2543 + string childWebDirProperties = this.ParseWebDirPropertiesElement(intermediate, section, child, componentId);
2544 if (null == dirProperties)
2545 {
2546 dirProperties = childWebDirProperties;
@@ -2518,27 +2576,34 @@ namespace WixToolset.Iis
2576
2577 if (null != dirProperties)
2578 {
2521 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebDirProperties", dirProperties);
2579 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebDirProperties, dirProperties);
2580 }
2581
2582 if (null != application)
2583 {
2526 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "IIsWebApplication", application);
2584 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, IisTupleDefinitions.IIsWebApplication, application);
2585 }
2586
2587 // Reference ConfigureIIs since nothing will happen without it
2530 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureIIs");
2588 + this.AddReferenceToConfigureIIs(section, sourceLineNumbers);
2589
2590 if (!this.Messaging.EncounteredError)
2591 {
2534 - var row = this.ParseHelper.CreateRow(section, sourceLineNumbers, "IIsWebVirtualDir", id);
2535 - row.Set(1, componentId);
2536 - row.Set(2, parentWeb);
2537 - row.Set(3, alias);
2538 - row.Set(4, directory);
2539 - row.Set(5, dirProperties);
2540 - row.Set(6, application);
2592 + section.AddTuple(new IIsWebVirtualDirTuple(sourceLineNumbers, id)
2593 + {
2594 + ComponentRef = componentId,
2595 + WebRef = parentWeb,
2596 + Alias = alias,
2597 + DirectoryRef = directory,
2598 + DirPropertiesRef = dirProperties,
2599 + ApplicationRef = application,
2600 + });
2601 }
2602 }
2603 +
2604 + private void AddReferenceToConfigureIIs(IntermediateSection section, SourceLineNumber sourceLineNumbers)
2605 + {
2606 + this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.CustomAction, "ConfigureIIs");
2607 + }
2608 }
2609 }
src/wixext/IisTableDefinitions.cs new
+324
@@ -0,0 +1,324 @@
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 +
3 +namespace WixToolset.Iis
4 +{
5 + using WixToolset.Data.WindowsInstaller;
6 +
7 + public static class IisTableDefinitions
8 + {
9 + public static readonly TableDefinition Certificate = new TableDefinition(
10 + "Certificate",
11 + new[]
12 + {
13 + new ColumnDefinition("Certificate", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyColumn: 1, description: "Identifier for the certificate in the package.", modularizeType: ColumnModularizeType.Column),
14 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Foreign key into the Component table used to determine install state", modularizeType: ColumnModularizeType.Column),
15 + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name to be used for the Certificate."),
16 + new ColumnDefinition("StoreLocation", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 1, maxValue: 2, description: "Location of the target certificate store (CurrentUser == 1, LocalMachine == 2)"),
17 + new ColumnDefinition("StoreName", ColumnType.String, 64, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of the target certificate store"),
18 + new ColumnDefinition("Attributes", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "Attributes of the certificate"),
19 + new ColumnDefinition("Binary_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Binary", keyColumn: 1, description: "Identifier to Binary table containing certificate.", modularizeType: ColumnModularizeType.Column),
20 + new ColumnDefinition("CertificatePath", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Property to path of certificate.", modularizeType: ColumnModularizeType.Property),
21 + new ColumnDefinition("PFXPassword", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Hidden property to a pfx password", modularizeType: ColumnModularizeType.Property),
22 + },
23 + tupleDefinitionName: "Certificate",
24 + tupleIdIsPrimaryKey: true
25 + );
26 +
27 + public static readonly TableDefinition CertificateHash = new TableDefinition(
28 + "CertificateHash",
29 + new[]
30 + {
31 + new ColumnDefinition("Certificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyColumn: 1, description: "Foreign key to certificate in Certificate table.", modularizeType: ColumnModularizeType.Column),
32 + new ColumnDefinition("Hash", ColumnType.String, 0, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Base64 encoded SHA1 hash of certificate populated at run-time."),
33 + },
34 + tupleDefinitionName: "CertificateHash",
35 + tupleIdIsPrimaryKey: false
36 + );
37 +
38 + public static readonly TableDefinition IIsWebSiteCertificates = new TableDefinition(
39 + "IIsWebSiteCertificates",
40 + new[]
41 + {
42 + new ColumnDefinition("Web_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "IIsWebSite", keyColumn: 1, description: "The index into the IIsWebSite table.", modularizeType: ColumnModularizeType.Column),
43 + new ColumnDefinition("Certificate_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Text, keyTable: "Certificate", keyColumn: 1, description: "The index into the Certificate table.", modularizeType: ColumnModularizeType.Column),
44 + },
45 + tupleDefinitionName: "IIsWebSiteCertificates",
46 + tupleIdIsPrimaryKey: false
47 + );
48 +
49 + public static readonly TableDefinition IIsAppPool = new TableDefinition(
50 + "IIsAppPool",
51 + new[]
52 + {
53 + new ColumnDefinition("AppPool", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token for apppool", modularizeType: ColumnModularizeType.Column),
54 + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name to be used for the IIs AppPool.", modularizeType: ColumnModularizeType.Property),
55 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the app pool", modularizeType: ColumnModularizeType.Column),
56 + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Attributes of the AppPool"),
57 + new ColumnDefinition("User_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "User", keyColumn: 1, description: "User account to run the app pool as", modularizeType: ColumnModularizeType.Column),
58 + new ColumnDefinition("RecycleMinutes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Number of minutes between recycling app pool"),
59 + new ColumnDefinition("RecycleRequests", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Number of requests between recycling app pool"),
60 + new ColumnDefinition("RecycleTimes", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Times to recycle app pool (comma delimited - i.e. 1:45,13:30)"),
61 + new ColumnDefinition("IdleTimeout", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Amount of idle time before shutting down"),
62 + new ColumnDefinition("QueueLimit", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Reject requests after queue gets how large"),
63 + new ColumnDefinition("CPUMon", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "CPUMon is a comma delimeted list of the following format: <percent CPU usage>,<refress minutes>,<Action>. The values for Action are 1 (Shutdown) and 0 (No Action)."),
64 + new ColumnDefinition("MaxProc", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Maximum number of processes to use"),
65 + new ColumnDefinition("VirtualMemory", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Amount of virtual memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this field is 4,294,967 KB."),
66 + new ColumnDefinition("PrivateMemory", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Amount of private memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this field is 4,294,967 KB."),
67 + new ColumnDefinition("ManagedRuntimeVersion", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies the .NET Framework version to be used by the application pool."),
68 + new ColumnDefinition("ManagedPipelineMode", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies the request-processing mode that is used to process requests for managed content."),
69 + },
70 + tupleDefinitionName: "IIsAppPool",
71 + tupleIdIsPrimaryKey: true
72 + );
73 +
74 + public static readonly TableDefinition IIsMimeMap = new TableDefinition(
75 + "IIsMimeMap",
76 + new[]
77 + {
78 + new ColumnDefinition("MimeMap", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token for Mime Map definitions", modularizeType: ColumnModularizeType.Column),
79 + new ColumnDefinition("ParentType", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "1;2", description: "Type of parent: 1=vdir 2=website"),
80 + new ColumnDefinition("ParentValue", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, description: "Name of the parent value.", modularizeType: ColumnModularizeType.Column),
81 + new ColumnDefinition("MimeType", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Mime-type covered by the MimeMap."),
82 + new ColumnDefinition("Extension", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Extension covered by the MimeMap."),
83 + },
84 + tupleDefinitionName: "IIsMimeMap",
85 + tupleIdIsPrimaryKey: true
86 + );
87 +
88 + public static readonly TableDefinition IIsProperty = new TableDefinition(
89 + "IIsProperty",
90 + new[]
91 + {
92 + new ColumnDefinition("Property", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Unique name of the IIsProperty"),
93 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Component that the property is linked to", modularizeType: ColumnModularizeType.Column),
94 + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Attributes of the IIsProperty (unused)"),
95 + new ColumnDefinition("Value", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Value of the IIsProperty"),
96 + },
97 + tupleDefinitionName: "IIsProperty",
98 + tupleIdIsPrimaryKey: true
99 + );
100 +
101 + public static readonly TableDefinition IIsWebDirProperties = new TableDefinition(
102 + "IIsWebDirProperties",
103 + new[]
104 + {
105 + new ColumnDefinition("DirProperties", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token for Web Properties", modularizeType: ColumnModularizeType.Column),
106 + new ColumnDefinition("Access", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Access rights to the web server"),
107 + new ColumnDefinition("Authorization", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Authorization policy to web server (anonymous access, NTLM, etc)"),
108 + new ColumnDefinition("AnonymousUser_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "User", keyColumn: 1, description: "Foreign key, User used to log into database", modularizeType: ColumnModularizeType.Column),
109 + new ColumnDefinition("IIsControlledPassword", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether IIs is allowed to set the AnonymousUser_ password"),
110 + new ColumnDefinition("LogVisits", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether IIs tracks all access to the directory"),
111 + new ColumnDefinition("Index", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether IIs searches the directory"),
112 + new ColumnDefinition("DefaultDoc", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Comma delimited list of file names to act as a default document"),
113 + new ColumnDefinition("AspDetailedError", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether detailed ASP errors are sent to browser"),
114 + new ColumnDefinition("HttpExpires", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Value to set the HttpExpires attribute to for a Web Dir in the metabase"),
115 + new ColumnDefinition("CacheControlMaxAge", ColumnType.Number, 4, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Integer value specifying the cache control maximum age value."),
116 + new ColumnDefinition("CacheControlCustom", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Custom HTTP 1.1 cache control directives."),
117 + new ColumnDefinition("NoCustomError", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether IIs will return custom errors for this directory."),
118 + new ColumnDefinition("AccessSSLFlags", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Specifies AccessSSLFlags IIS metabase property."),
119 + new ColumnDefinition("AuthenticationProviders", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Comma delimited list, in order of precedence, of Windows authentication providers that IIS will attempt to use: NTLM, Kerberos, Negotiate, and others."),
120 + },
121 + tupleDefinitionName: "IIsWebDirProperties",
122 + tupleIdIsPrimaryKey: true
123 + );
124 +
125 + public static readonly TableDefinition IIsWebAddress = new TableDefinition(
126 + "IIsWebAddress",
127 + new[]
128 + {
129 + new ColumnDefinition("Address", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
130 + new ColumnDefinition("Web_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "IIsWebSite", keyColumn: 1, description: "Foreign key referencing Web that uses the address.", modularizeType: ColumnModularizeType.Column),
131 + new ColumnDefinition("IP", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "String representing IP address (#.#.#.#) or NT machine name (fooserver)", modularizeType: ColumnModularizeType.Property),
132 + new ColumnDefinition("Port", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Port web site listens on", modularizeType: ColumnModularizeType.Property),
133 + new ColumnDefinition("Header", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Special header information for the web site"),
134 + new ColumnDefinition("Secure", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether SSL is used to communicate with web site"),
135 + },
136 + tupleDefinitionName: "IIsWebAddress",
137 + tupleIdIsPrimaryKey: true
138 + );
139 +
140 + public static readonly TableDefinition IIsWebSite = new TableDefinition(
141 + "IIsWebSite",
142 + new[]
143 + {
144 + new ColumnDefinition("Web", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
145 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the web site", modularizeType: ColumnModularizeType.Column),
146 + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Description displayed in IIS MMC applet"),
147 + new ColumnDefinition("ConnectionTimeout", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Time connection is maintained without activity (in seconds)"),
148 + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Foreign key referencing directory that the web site points at", modularizeType: ColumnModularizeType.Column),
149 + new ColumnDefinition("State", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1;2", description: "Sets intial state of web site"),
150 + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "2", description: "Control the install behavior of web site"),
151 + new ColumnDefinition("KeyAddress_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "IIsWebAddress", keyColumn: 1, description: "Foreign key referencing primary address for the web site", modularizeType: ColumnModularizeType.Column),
152 + new ColumnDefinition("DirProperties_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsWebDirProperties", keyColumn: 1, description: "Foreign key referencing possible security information for the web site", modularizeType: ColumnModularizeType.Column),
153 + new ColumnDefinition("Application_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsWebApplication", keyColumn: 1, description: "Foreign key referencing possible ASP application for the web site.", modularizeType: ColumnModularizeType.Column),
154 + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Allows ordering of web site install"),
155 + new ColumnDefinition("Log_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Unknown, keyTable: "IIsWebLog", keyColumn: 1, description: "Foreign key reference to IIsWebLog data", modularizeType: ColumnModularizeType.Column),
156 + new ColumnDefinition("Id", ColumnType.String, 74, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Optional number or formatted value that resolves to number that acts as the WebSite Id."),
157 + },
158 + tupleDefinitionName: "IIsWebSite",
159 + tupleIdIsPrimaryKey: true
160 + );
161 +
162 + public static readonly TableDefinition IIsWebApplication = new TableDefinition(
163 + "IIsWebApplication",
164 + new[]
165 + {
166 + new ColumnDefinition("Application", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token for ASP Application", modularizeType: ColumnModularizeType.Column),
167 + new ColumnDefinition("Name", ColumnType.Localized, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of application in IIS MMC applet", modularizeType: ColumnModularizeType.Property),
168 + new ColumnDefinition("Isolation", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, possibilities: "0;1;2", description: "Isolation level for ASP Application: 0 == Low, 2 == Medium, 1 == High"),
169 + new ColumnDefinition("AllowSessions", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether application may maintain session state"),
170 + new ColumnDefinition("SessionTimeout", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Time session state is maintained without user interaction"),
171 + new ColumnDefinition("Buffer", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether application buffers its output"),
172 + new ColumnDefinition("ParentPaths", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "What is this for anyway?"),
173 + new ColumnDefinition("DefaultScript", ColumnType.String, 26, primaryKey: false, nullable: true, ColumnCategory.Text, possibilities: "VBScript;JScript", description: "Default scripting language for ASP applications"),
174 + new ColumnDefinition("ScriptTimeout", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Time ASP application page is permitted to process"),
175 + new ColumnDefinition("ServerDebugging", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether to allow ASP server-side script debugging"),
176 + new ColumnDefinition("ClientDebugging", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "0;1", description: "Specifies whether to allow ASP client-side script debugging"),
177 + new ColumnDefinition("AppPool_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsAppPool", keyColumn: 1, description: "App Pool this application should run under", modularizeType: ColumnModularizeType.Column),
178 + },
179 + tupleDefinitionName: "IIsWebApplication",
180 + tupleIdIsPrimaryKey: true
181 + );
182 +
183 + public static readonly TableDefinition IIsWebApplicationExtension = new TableDefinition(
184 + "IIsWebApplicationExtension",
185 + new[]
186 + {
187 + new ColumnDefinition("Application_", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, keyTable: "IIsWebApplication", keyColumn: 1, description: "Foreign key referencing possible ASP application for the web site", modularizeType: ColumnModularizeType.Column),
188 + new ColumnDefinition("Extension", ColumnType.String, 255, primaryKey: true, nullable: true, ColumnCategory.Text, description: "Primary key, Extension that should be registered for this ASP application"),
189 + new ColumnDefinition("Verbs", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Text, description: "Comma delimited list of HTTP verbs the extension should be registered with"),
190 + new ColumnDefinition("Executable", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Path to extension (usually file property: [#file])", modularizeType: ColumnModularizeType.Property),
191 + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, possibilities: "1;4;5", description: "Attributes for extension: 1 == Script, 4 == Check Path Info"),
192 + },
193 + tupleDefinitionName: "IIsWebApplicationExtension",
194 + tupleIdIsPrimaryKey: false
195 + );
196 +
197 + public static readonly TableDefinition IIsFilter = new TableDefinition(
198 + "IIsFilter",
199 + new[]
200 + {
201 + new ColumnDefinition("Filter", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
202 + new ColumnDefinition("Name", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Unknown, description: "Name of the ISAPI Filter in IIS"),
203 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the filter", modularizeType: ColumnModularizeType.Column),
204 + new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Path to filter (usually file property: [#file])", modularizeType: ColumnModularizeType.Property),
205 + new ColumnDefinition("Web_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsWebSite", keyColumn: 1, description: "Foreign key referencing web site that loads the filter (NULL == global filter", modularizeType: ColumnModularizeType.Column),
206 + new ColumnDefinition("Description", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Description displayed in IIS MMC applet"),
207 + new ColumnDefinition("Flags", ColumnType.Number, 4, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 2147483647, description: "What do all these numbers mean?"),
208 + new ColumnDefinition("LoadOrder", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "-1 == last in order, 0 == first in order, # == place in order"),
209 + },
210 + tupleDefinitionName: "IIsFilter",
211 + tupleIdIsPrimaryKey: true
212 + );
213 +
214 + public static readonly TableDefinition IIsWebDir = new TableDefinition(
215 + "IIsWebDir",
216 + new[]
217 + {
218 + new ColumnDefinition("WebDir", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
219 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the virtual directory", modularizeType: ColumnModularizeType.Column),
220 + new ColumnDefinition("Web_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "IIsWebSite", keyColumn: 1, description: "Foreign key referencing web site that controls the virtual directory", modularizeType: ColumnModularizeType.Column),
221 + new ColumnDefinition("Path", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of web directory displayed in IIS MMC applet", modularizeType: ColumnModularizeType.Property),
222 + new ColumnDefinition("DirProperties_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsWebDirProperties", keyColumn: 1, description: "Foreign key referencing possible security information for the virtual directory", modularizeType: ColumnModularizeType.Column),
223 + new ColumnDefinition("Application_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsWebApplication", keyColumn: 1, description: "Foreign key referencing possible ASP application for the virtual directory. This column is currently unused, but maintained for compatibility reasons.", modularizeType: ColumnModularizeType.Column),
224 + },
225 + tupleDefinitionName: "IIsWebDir",
226 + tupleIdIsPrimaryKey: true
227 + );
228 +
229 + public static readonly TableDefinition IIsWebError = new TableDefinition(
230 + "IIsWebError",
231 + new[]
232 + {
233 + new ColumnDefinition("ErrorCode", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, minValue: 400, maxValue: 599, description: "HTTP status code indicating error."),
234 + new ColumnDefinition("SubCode", ColumnType.Number, 4, primaryKey: true, nullable: false, ColumnCategory.Unknown, description: "HTTP sub-status code indicating error."),
235 + new ColumnDefinition("ParentType", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "1;2", description: "Type of parent: 1=vdir, 2=web"),
236 + new ColumnDefinition("ParentValue", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the parent value.", modularizeType: ColumnModularizeType.Column),
237 + new ColumnDefinition("File", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Path to file for this custom error (usually file property: [#file]). Must be null if URL is not null."),
238 + new ColumnDefinition("URL", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "URL for this custom error. Must be null if File is not null."),
239 + },
240 + tupleDefinitionName: "IIsWebError",
241 + tupleIdIsPrimaryKey: false
242 + );
243 +
244 + public static readonly TableDefinition IIsHttpHeader = new TableDefinition(
245 + "IIsHttpHeader",
246 + new[]
247 + {
248 + new ColumnDefinition("HttpHeader", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
249 + new ColumnDefinition("ParentType", ColumnType.Number, 2, primaryKey: true, nullable: false, ColumnCategory.Unknown, possibilities: "1;2", description: "Type of parent: 1=vdir, 2=web"),
250 + new ColumnDefinition("ParentValue", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Name of the parent value.", modularizeType: ColumnModularizeType.Column),
251 + new ColumnDefinition("Name", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Name of the HTTP Header"),
252 + new ColumnDefinition("Value", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "URL for this custom error. Must be null if File is not null."),
253 + new ColumnDefinition("Attributes", ColumnType.Number, 2, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 0, description: "Attributes for HTTP Header: none"),
254 + new ColumnDefinition("Sequence", ColumnType.Number, 2, primaryKey: false, nullable: true, ColumnCategory.Unknown, description: "Order to add the HTTP Headers."),
255 + },
256 + tupleDefinitionName: "IIsHttpHeader",
257 + tupleIdIsPrimaryKey: false
258 + );
259 +
260 + public static readonly TableDefinition IIsWebServiceExtension = new TableDefinition(
261 + "IIsWebServiceExtension",
262 + new[]
263 + {
264 + new ColumnDefinition("WebServiceExtension", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
265 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the WebServiceExtension handler", modularizeType: ColumnModularizeType.Column),
266 + new ColumnDefinition("File", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Path to handler (usually file property: [#file])", modularizeType: ColumnModularizeType.Property),
267 + new ColumnDefinition("Description", ColumnType.Localized, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "Description displayed in WebServiceExtension Wizard", modularizeType: ColumnModularizeType.Property),
268 + new ColumnDefinition("Group", ColumnType.String, 255, primaryKey: false, nullable: true, ColumnCategory.Formatted, description: "String used to identify groups of extensions.", modularizeType: ColumnModularizeType.Property),
269 + new ColumnDefinition("Attributes", ColumnType.Number, 1, primaryKey: false, nullable: false, ColumnCategory.Unknown, minValue: 0, maxValue: 3, description: "Attributes for WebServiceExtension: 1 = Allow, 2 = UIDeletable"),
270 + },
271 + tupleDefinitionName: "IIsWebServiceExtension",
272 + tupleIdIsPrimaryKey: true
273 + );
274 +
275 + public static readonly TableDefinition IIsWebVirtualDir = new TableDefinition(
276 + "IIsWebVirtualDir",
277 + new[]
278 + {
279 + new ColumnDefinition("VirtualDir", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
280 + new ColumnDefinition("Component_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Component", keyColumn: 1, description: "Foreign key referencing Component that controls the virtual directory", modularizeType: ColumnModularizeType.Column),
281 + new ColumnDefinition("Web_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "IIsWebSite", keyColumn: 1, description: "Foreign key referencing web site that controls the virtual directory", modularizeType: ColumnModularizeType.Column),
282 + new ColumnDefinition("Alias", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Formatted, description: "Name of virtual directory displayed in IIS MMC applet", modularizeType: ColumnModularizeType.Property),
283 + new ColumnDefinition("Directory_", ColumnType.String, 72, primaryKey: false, nullable: false, ColumnCategory.Identifier, keyTable: "Directory", keyColumn: 1, description: "Foreign key referencing directory that the virtual directory points at", modularizeType: ColumnModularizeType.Column),
284 + new ColumnDefinition("DirProperties_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsWebDirProperties", keyColumn: 1, description: "Foreign key referencing possible security information for the virtual directory", modularizeType: ColumnModularizeType.Column),
285 + new ColumnDefinition("Application_", ColumnType.String, 72, primaryKey: false, nullable: true, ColumnCategory.Identifier, keyTable: "IIsWebApplication", keyColumn: 1, description: "Foreign key referencing possible ASP application for the virtual directory", modularizeType: ColumnModularizeType.Column),
286 + },
287 + tupleDefinitionName: "IIsWebVirtualDir",
288 + tupleIdIsPrimaryKey: true
289 + );
290 +
291 + public static readonly TableDefinition IIsWebLog = new TableDefinition(
292 + "IIsWebLog",
293 + new[]
294 + {
295 + new ColumnDefinition("Log", ColumnType.String, 72, primaryKey: true, nullable: false, ColumnCategory.Identifier, description: "Primary key, non-localized token", modularizeType: ColumnModularizeType.Column),
296 + new ColumnDefinition("Format", ColumnType.String, 255, primaryKey: false, nullable: false, ColumnCategory.Text, description: "Type of log format"),
297 + },
298 + tupleDefinitionName: "IIsWebLog",
299 + tupleIdIsPrimaryKey: true
300 + );
301 +
302 + public static readonly TableDefinition[] All = new[]
303 + {
304 + Certificate,
305 + CertificateHash,
306 + IIsWebSiteCertificates,
307 + IIsAppPool,
308 + IIsMimeMap,
309 + IIsProperty,
310 + IIsWebDirProperties,
311 + IIsWebAddress,
312 + IIsWebSite,
313 + IIsWebApplication,
314 + IIsWebApplicationExtension,
315 + IIsFilter,
316 + IIsWebDir,
317 + IIsWebError,
318 + IIsHttpHeader,
319 + IIsWebServiceExtension,
320 + IIsWebVirtualDir,
321 + IIsWebLog,
322 + };
323 + }
324 +}
src/wixext/IisWindowsInstallerBackendBinderExtension.cs
+2 -23
@@ -1,34 +1,13 @@
1 -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
1 +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 namespace WixToolset.Iis
4 {
5 using System.Collections.Generic;
6 - using System.Linq;
7 - using System.Xml;
8 - using WixToolset.Data;
6 using WixToolset.Data.WindowsInstaller;
7 using WixToolset.Extensibility;
8
9 public class IisWindowsInstallerBackendBinderExtension : BaseWindowsInstallerBackendBinderExtension
10 {
14 - private static readonly TableDefinition[] Tables = LoadTables();
15 -
16 - public override IEnumerable<TableDefinition> TableDefinitions { get => Tables; }
17 -
18 - public override bool TryAddTupleToOutput(IntermediateTuple tuple, WindowsInstallerData output)
19 - {
20 - var columnZeroIsId = tuple.Id != null;
21 - return this.BackendHelper.TryAddTupleToOutputMatchingTableDefinitions(tuple, output, this.TableDefinitions, columnZeroIsId);
22 - }
23 -
24 - private static TableDefinition[] LoadTables()
25 - {
26 - using (var resourceStream = typeof(IisWindowsInstallerBackendBinderExtension).Assembly.GetManifestResourceStream("WixToolset.Iis.tables.xml"))
27 - using (var reader = XmlReader.Create(resourceStream))
28 - {
29 - var tables = TableDefinitionCollection.Load(reader);
30 - return tables.ToArray();
31 - }
32 - }
11 + public override IEnumerable<TableDefinition> TableDefinitions => IisTableDefinitions.All;
12 }
13 }
src/wixext/Tuples/CertificateHashTuple.cs
+5 -5
@@ -11,7 +11,7 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.CertificateHash.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(CertificateHashTupleFields.Certificate_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(CertificateHashTupleFields.CertificateRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(CertificateHashTupleFields.Hash), IntermediateFieldType.String),
16 },
17 typeof(CertificateHashTuple));
@@ -24,7 +24,7 @@ namespace WixToolset.Iis.Tuples
24
25 public enum CertificateHashTupleFields
26 {
27 - Certificate_,
27 + CertificateRef,
28 Hash,
29 }
30
@@ -40,10 +40,10 @@ namespace WixToolset.Iis.Tuples
40
41 public IntermediateField this[CertificateHashTupleFields index] => this.Fields[(int)index];
42
43 - public string Certificate_
43 + public string CertificateRef
44 {
45 - get => this.Fields[(int)CertificateHashTupleFields.Certificate_].AsString();
46 - set => this.Set((int)CertificateHashTupleFields.Certificate_, value);
45 + get => this.Fields[(int)CertificateHashTupleFields.CertificateRef].AsString();
46 + set => this.Set((int)CertificateHashTupleFields.CertificateRef, value);
47 }
48
49 public string Hash
src/wixext/Tuples/CertificateTuple.cs
+10 -18
@@ -11,13 +11,12 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.Certificate.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(CertificateTupleFields.Certificate), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(CertificateTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(CertificateTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(CertificateTupleFields.Name), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(CertificateTupleFields.StoreLocation), IntermediateFieldType.Number),
17 new IntermediateFieldDefinition(nameof(CertificateTupleFields.StoreName), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(CertificateTupleFields.Attributes), IntermediateFieldType.Number),
20 - new IntermediateFieldDefinition(nameof(CertificateTupleFields.Binary_), IntermediateFieldType.String),
19 + new IntermediateFieldDefinition(nameof(CertificateTupleFields.BinaryRef), IntermediateFieldType.String),
20 new IntermediateFieldDefinition(nameof(CertificateTupleFields.CertificatePath), IntermediateFieldType.String),
21 new IntermediateFieldDefinition(nameof(CertificateTupleFields.PFXPassword), IntermediateFieldType.String),
22 },
@@ -31,13 +30,12 @@ namespace WixToolset.Iis.Tuples
30
31 public enum CertificateTupleFields
32 {
34 - Certificate,
35 - Component_,
33 + ComponentRef,
34 Name,
35 StoreLocation,
36 StoreName,
37 Attributes,
40 - Binary_,
38 + BinaryRef,
39 CertificatePath,
40 PFXPassword,
41 }
@@ -54,16 +52,10 @@ namespace WixToolset.Iis.Tuples
52
53 public IntermediateField this[CertificateTupleFields index] => this.Fields[(int)index];
54
57 - public string Certificate
55 + public string ComponentRef
56 {
59 - get => this.Fields[(int)CertificateTupleFields.Certificate].AsString();
60 - set => this.Set((int)CertificateTupleFields.Certificate, value);
61 - }
62 -
63 - public string Component_
64 - {
65 - get => this.Fields[(int)CertificateTupleFields.Component_].AsString();
66 - set => this.Set((int)CertificateTupleFields.Component_, value);
57 + get => this.Fields[(int)CertificateTupleFields.ComponentRef].AsString();
58 + set => this.Set((int)CertificateTupleFields.ComponentRef, value);
59 }
60
61 public string Name
@@ -90,10 +82,10 @@ namespace WixToolset.Iis.Tuples
82 set => this.Set((int)CertificateTupleFields.Attributes, value);
83 }
84
93 - public string Binary_
85 + public string BinaryRef
86 {
95 - get => this.Fields[(int)CertificateTupleFields.Binary_].AsString();
96 - set => this.Set((int)CertificateTupleFields.Binary_, value);
87 + get => this.Fields[(int)CertificateTupleFields.BinaryRef].AsString();
88 + set => this.Set((int)CertificateTupleFields.BinaryRef, value);
89 }
90
91 public string CertificatePath
src/wixext/Tuples/IIsAppPoolTuple.cs
+10 -18
@@ -11,11 +11,10 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsAppPool.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.AppPool), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.Name), IntermediateFieldType.String),
16 - new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.Component_), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.ComponentRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.Attributes), IntermediateFieldType.Number),
18 - new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.User_), IntermediateFieldType.String),
17 + new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.UserRef), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.RecycleMinutes), IntermediateFieldType.Number),
19 new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.RecycleRequests), IntermediateFieldType.Number),
20 new IntermediateFieldDefinition(nameof(IIsAppPoolTupleFields.RecycleTimes), IntermediateFieldType.String),
@@ -38,11 +37,10 @@ namespace WixToolset.Iis.Tuples
37
38 public enum IIsAppPoolTupleFields
39 {
41 - AppPool,
40 Name,
43 - Component_,
41 + ComponentRef,
42 Attributes,
45 - User_,
43 + UserRef,
44 RecycleMinutes,
45 RecycleRequests,
46 RecycleTimes,
@@ -68,22 +66,16 @@ namespace WixToolset.Iis.Tuples
66
67 public IntermediateField this[IIsAppPoolTupleFields index] => this.Fields[(int)index];
68
71 - public string AppPool
72 - {
73 - get => this.Fields[(int)IIsAppPoolTupleFields.AppPool].AsString();
74 - set => this.Set((int)IIsAppPoolTupleFields.AppPool, value);
75 - }
76 -
69 public string Name
70 {
71 get => this.Fields[(int)IIsAppPoolTupleFields.Name].AsString();
72 set => this.Set((int)IIsAppPoolTupleFields.Name, value);
73 }
74
83 - public string Component_
75 + public string ComponentRef
76 {
85 - get => this.Fields[(int)IIsAppPoolTupleFields.Component_].AsString();
86 - set => this.Set((int)IIsAppPoolTupleFields.Component_, value);
77 + get => this.Fields[(int)IIsAppPoolTupleFields.ComponentRef].AsString();
78 + set => this.Set((int)IIsAppPoolTupleFields.ComponentRef, value);
79 }
80
81 public int Attributes
@@ -92,10 +84,10 @@ namespace WixToolset.Iis.Tuples
84 set => this.Set((int)IIsAppPoolTupleFields.Attributes, value);
85 }
86
95 - public string User_
87 + public string UserRef
88 {
97 - get => this.Fields[(int)IIsAppPoolTupleFields.User_].AsString();
98 - set => this.Set((int)IIsAppPoolTupleFields.User_, value);
89 + get => this.Fields[(int)IIsAppPoolTupleFields.UserRef].AsString();
90 + set => this.Set((int)IIsAppPoolTupleFields.UserRef, value);
91 }
92
93 public int RecycleMinutes
src/wixext/Tuples/IIsFilterTuple.cs
+10 -18
@@ -11,11 +11,10 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsFilter.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.Filter), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.Name), IntermediateFieldType.String),
16 - new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.Component_), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.ComponentRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.Path), IntermediateFieldType.String),
18 - new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.Web_), IntermediateFieldType.String),
17 + new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.WebRef), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.Description), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.Flags), IntermediateFieldType.Number),
20 new IntermediateFieldDefinition(nameof(IIsFilterTupleFields.LoadOrder), IntermediateFieldType.Number),
@@ -30,11 +29,10 @@ namespace WixToolset.Iis.Tuples
29
30 public enum IIsFilterTupleFields
31 {
33 - Filter,
32 Name,
35 - Component_,
33 + ComponentRef,
34 Path,
37 - Web_,
35 + WebRef,
36 Description,
37 Flags,
38 LoadOrder,
@@ -52,22 +50,16 @@ namespace WixToolset.Iis.Tuples
50
51 public IntermediateField this[IIsFilterTupleFields index] => this.Fields[(int)index];
52
55 - public string Filter
56 - {
57 - get => this.Fields[(int)IIsFilterTupleFields.Filter].AsString();
58 - set => this.Set((int)IIsFilterTupleFields.Filter, value);
59 - }
60 -
53 public string Name
54 {
55 get => this.Fields[(int)IIsFilterTupleFields.Name].AsString();
56 set => this.Set((int)IIsFilterTupleFields.Name, value);
57 }
58
67 - public string Component_
59 + public string ComponentRef
60 {
69 - get => this.Fields[(int)IIsFilterTupleFields.Component_].AsString();
70 - set => this.Set((int)IIsFilterTupleFields.Component_, value);
61 + get => this.Fields[(int)IIsFilterTupleFields.ComponentRef].AsString();
62 + set => this.Set((int)IIsFilterTupleFields.ComponentRef, value);
63 }
64
65 public string Path
@@ -76,10 +68,10 @@ namespace WixToolset.Iis.Tuples
68 set => this.Set((int)IIsFilterTupleFields.Path, value);
69 }
70
79 - public string Web_
71 + public string WebRef
72 {
81 - get => this.Fields[(int)IIsFilterTupleFields.Web_].AsString();
82 - set => this.Set((int)IIsFilterTupleFields.Web_, value);
73 + get => this.Fields[(int)IIsFilterTupleFields.WebRef].AsString();
74 + set => this.Set((int)IIsFilterTupleFields.WebRef, value);
75 }
76
77 public string Description
src/wixext/Tuples/IIsMimeMapTuple.cs
-8
@@ -11,7 +11,6 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsMimeMap.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsMimeMapTupleFields.MimeMap), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(IIsMimeMapTupleFields.ParentType), IntermediateFieldType.Number),
15 new IntermediateFieldDefinition(nameof(IIsMimeMapTupleFields.ParentValue), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsMimeMapTupleFields.MimeType), IntermediateFieldType.String),
@@ -27,7 +26,6 @@ namespace WixToolset.Iis.Tuples
26
27 public enum IIsMimeMapTupleFields
28 {
30 - MimeMap,
29 ParentType,
30 ParentValue,
31 MimeType,
@@ -46,12 +44,6 @@ namespace WixToolset.Iis.Tuples
44
45 public IntermediateField this[IIsMimeMapTupleFields index] => this.Fields[(int)index];
46
49 - public string MimeMap
50 - {
51 - get => this.Fields[(int)IIsMimeMapTupleFields.MimeMap].AsString();
52 - set => this.Set((int)IIsMimeMapTupleFields.MimeMap, value);
53 - }
54 -
47 public int ParentType
48 {
49 get => this.Fields[(int)IIsMimeMapTupleFields.ParentType].AsNumber();
src/wixext/Tuples/IIsPropertyTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsProperty.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsPropertyTupleFields.Property), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(IIsPropertyTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsPropertyTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(IIsPropertyTupleFields.Attributes), IntermediateFieldType.Number),
16 new IntermediateFieldDefinition(nameof(IIsPropertyTupleFields.Value), IntermediateFieldType.String),
17 },
@@ -26,8 +25,7 @@ namespace WixToolset.Iis.Tuples
25
26 public enum IIsPropertyTupleFields
27 {
29 - Property,
30 - Component_,
28 + ComponentRef,
29 Attributes,
30 Value,
31 }
@@ -44,16 +42,10 @@ namespace WixToolset.Iis.Tuples
42
43 public IntermediateField this[IIsPropertyTupleFields index] => this.Fields[(int)index];
44
47 - public string Property
45 + public string ComponentRef
46 {
49 - get => this.Fields[(int)IIsPropertyTupleFields.Property].AsString();
50 - set => this.Set((int)IIsPropertyTupleFields.Property, value);
51 - }
52 -
53 - public string Component_
54 - {
55 - get => this.Fields[(int)IIsPropertyTupleFields.Component_].AsString();
56 - set => this.Set((int)IIsPropertyTupleFields.Component_, value);
47 + get => this.Fields[(int)IIsPropertyTupleFields.ComponentRef].AsString();
48 + set => this.Set((int)IIsPropertyTupleFields.ComponentRef, value);
49 }
50
51 public int Attributes
src/wixext/Tuples/IIsWebAddressTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebAddress.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebAddressTupleFields.Address), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(IIsWebAddressTupleFields.Web_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsWebAddressTupleFields.WebRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(IIsWebAddressTupleFields.IP), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsWebAddressTupleFields.Port), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(IIsWebAddressTupleFields.Header), IntermediateFieldType.String),
@@ -28,8 +27,7 @@ namespace WixToolset.Iis.Tuples
27
28 public enum IIsWebAddressTupleFields
29 {
31 - Address,
32 - Web_,
30 + WebRef,
31 IP,
32 Port,
33 Header,
@@ -48,16 +46,10 @@ namespace WixToolset.Iis.Tuples
46
47 public IntermediateField this[IIsWebAddressTupleFields index] => this.Fields[(int)index];
48
51 - public string Address
49 + public string WebRef
50 {
53 - get => this.Fields[(int)IIsWebAddressTupleFields.Address].AsString();
54 - set => this.Set((int)IIsWebAddressTupleFields.Address, value);
55 - }
56 -
57 - public string Web_
58 - {
59 - get => this.Fields[(int)IIsWebAddressTupleFields.Web_].AsString();
60 - set => this.Set((int)IIsWebAddressTupleFields.Web_, value);
51 + get => this.Fields[(int)IIsWebAddressTupleFields.WebRef].AsString();
52 + set => this.Set((int)IIsWebAddressTupleFields.WebRef, value);
53 }
54
55 public string IP
src/wixext/Tuples/IIsWebApplicationExtensionTuple.cs
+5 -5
@@ -11,7 +11,7 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebApplicationExtension.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebApplicationExtensionTupleFields.Application_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsWebApplicationExtensionTupleFields.ApplicationRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(IIsWebApplicationExtensionTupleFields.Extension), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsWebApplicationExtensionTupleFields.Verbs), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(IIsWebApplicationExtensionTupleFields.Executable), IntermediateFieldType.String),
@@ -27,7 +27,7 @@ namespace WixToolset.Iis.Tuples
27
28 public enum IIsWebApplicationExtensionTupleFields
29 {
30 - Application_,
30 + ApplicationRef,
31 Extension,
32 Verbs,
33 Executable,
@@ -46,10 +46,10 @@ namespace WixToolset.Iis.Tuples
46
47 public IntermediateField this[IIsWebApplicationExtensionTupleFields index] => this.Fields[(int)index];
48
49 - public string Application_
49 + public string ApplicationRef
50 {
51 - get => this.Fields[(int)IIsWebApplicationExtensionTupleFields.Application_].AsString();
52 - set => this.Set((int)IIsWebApplicationExtensionTupleFields.Application_, value);
51 + get => this.Fields[(int)IIsWebApplicationExtensionTupleFields.ApplicationRef].AsString();
52 + set => this.Set((int)IIsWebApplicationExtensionTupleFields.ApplicationRef, value);
53 }
54
55 public string Extension
src/wixext/Tuples/IIsWebApplicationTuple.cs
+5 -13
@@ -11,7 +11,6 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebApplication.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.Application), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.Name), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.Isolation), IntermediateFieldType.Number),
16 new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.AllowSessions), IntermediateFieldType.Number),
@@ -22,7 +21,7 @@ namespace WixToolset.Iis
21 new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.ScriptTimeout), IntermediateFieldType.Number),
22 new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.ServerDebugging), IntermediateFieldType.Number),
23 new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.ClientDebugging), IntermediateFieldType.Number),
25 - new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.AppPool_), IntermediateFieldType.String),
24 + new IntermediateFieldDefinition(nameof(IIsWebApplicationTupleFields.AppPoolRef), IntermediateFieldType.String),
25 },
26 typeof(IIsWebApplicationTuple));
27 }
@@ -34,7 +33,6 @@ namespace WixToolset.Iis.Tuples
33
34 public enum IIsWebApplicationTupleFields
35 {
37 - Application,
36 Name,
37 Isolation,
38 AllowSessions,
@@ -45,7 +43,7 @@ namespace WixToolset.Iis.Tuples
43 ScriptTimeout,
44 ServerDebugging,
45 ClientDebugging,
48 - AppPool_,
46 + AppPoolRef,
47 }
48
49 public class IIsWebApplicationTuple : IntermediateTuple
@@ -60,12 +58,6 @@ namespace WixToolset.Iis.Tuples
58
59 public IntermediateField this[IIsWebApplicationTupleFields index] => this.Fields[(int)index];
60
63 - public string Application
64 - {
65 - get => this.Fields[(int)IIsWebApplicationTupleFields.Application].AsString();
66 - set => this.Set((int)IIsWebApplicationTupleFields.Application, value);
67 - }
68 -
61 public string Name
62 {
63 get => this.Fields[(int)IIsWebApplicationTupleFields.Name].AsString();
@@ -126,10 +118,10 @@ namespace WixToolset.Iis.Tuples
118 set => this.Set((int)IIsWebApplicationTupleFields.ClientDebugging, value);
119 }
120
129 - public string AppPool_
121 + public string AppPoolRef
122 {
131 - get => this.Fields[(int)IIsWebApplicationTupleFields.AppPool_].AsString();
132 - set => this.Set((int)IIsWebApplicationTupleFields.AppPool_, value);
123 + get => this.Fields[(int)IIsWebApplicationTupleFields.AppPoolRef].AsString();
124 + set => this.Set((int)IIsWebApplicationTupleFields.AppPoolRef, value);
125 }
126 }
127 }
\ No newline at end of file
src/wixext/Tuples/IIsWebDirPropertiesTuple.cs
+5 -13
@@ -11,10 +11,9 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebDirProperties.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.DirProperties), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.Access), IntermediateFieldType.Number),
15 new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.Authorization), IntermediateFieldType.Number),
17 - new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.AnonymousUser_), IntermediateFieldType.String),
16 + new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.AnonymousUserRef), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.IIsControlledPassword), IntermediateFieldType.Number),
18 new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.LogVisits), IntermediateFieldType.Number),
19 new IntermediateFieldDefinition(nameof(IIsWebDirPropertiesTupleFields.Index), IntermediateFieldType.Number),
@@ -37,10 +36,9 @@ namespace WixToolset.Iis.Tuples
36
37 public enum IIsWebDirPropertiesTupleFields
38 {
40 - DirProperties,
39 Access,
40 Authorization,
43 - AnonymousUser_,
41 + AnonymousUserRef,
42 IIsControlledPassword,
43 LogVisits,
44 Index,
@@ -66,12 +64,6 @@ namespace WixToolset.Iis.Tuples
64
65 public IntermediateField this[IIsWebDirPropertiesTupleFields index] => this.Fields[(int)index];
66
69 - public string DirProperties
70 - {
71 - get => this.Fields[(int)IIsWebDirPropertiesTupleFields.DirProperties].AsString();
72 - set => this.Set((int)IIsWebDirPropertiesTupleFields.DirProperties, value);
73 - }
74 -
67 public int Access
68 {
69 get => this.Fields[(int)IIsWebDirPropertiesTupleFields.Access].AsNumber();
@@ -84,10 +76,10 @@ namespace WixToolset.Iis.Tuples
76 set => this.Set((int)IIsWebDirPropertiesTupleFields.Authorization, value);
77 }
78
87 - public string AnonymousUser_
79 + public string AnonymousUserRef
80 {
89 - get => this.Fields[(int)IIsWebDirPropertiesTupleFields.AnonymousUser_].AsString();
90 - set => this.Set((int)IIsWebDirPropertiesTupleFields.AnonymousUser_, value);
81 + get => this.Fields[(int)IIsWebDirPropertiesTupleFields.AnonymousUserRef].AsString();
82 + set => this.Set((int)IIsWebDirPropertiesTupleFields.AnonymousUserRef, value);
83 }
84
85 public int IIsControlledPassword
src/wixext/Tuples/IIsWebDirTuple.cs
+20 -28
@@ -11,12 +11,11 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebDir.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.WebDir), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.Component_), IntermediateFieldType.String),
16 - new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.Web_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.ComponentRef), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.WebRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.Path), IntermediateFieldType.String),
18 - new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.DirProperties_), IntermediateFieldType.String),
19 - new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.Application_), IntermediateFieldType.String),
17 + new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.DirPropertiesRef), IntermediateFieldType.String),
18 + new IntermediateFieldDefinition(nameof(IIsWebDirTupleFields.ApplicationRef), IntermediateFieldType.String),
19 },
20 typeof(IIsWebDirTuple));
21 }
@@ -28,12 +27,11 @@ namespace WixToolset.Iis.Tuples
27
28 public enum IIsWebDirTupleFields
29 {
31 - WebDir,
32 - Component_,
33 - Web_,
30 + ComponentRef,
31 + WebRef,
32 Path,
35 - DirProperties_,
36 - Application_,
33 + DirPropertiesRef,
34 + ApplicationRef,
35 }
36
37 public class IIsWebDirTuple : IntermediateTuple
@@ -48,22 +46,16 @@ namespace WixToolset.Iis.Tuples
46
47 public IntermediateField this[IIsWebDirTupleFields index] => this.Fields[(int)index];
48
51 - public string WebDir
49 + public string ComponentRef
50 {
53 - get => this.Fields[(int)IIsWebDirTupleFields.WebDir].AsString();
54 - set => this.Set((int)IIsWebDirTupleFields.WebDir, value);
51 + get => this.Fields[(int)IIsWebDirTupleFields.ComponentRef].AsString();
52 + set => this.Set((int)IIsWebDirTupleFields.ComponentRef, value);
53 }
54
57 - public string Component_
55 + public string WebRef
56 {
59 - get => this.Fields[(int)IIsWebDirTupleFields.Component_].AsString();
60 - set => this.Set((int)IIsWebDirTupleFields.Component_, value);
61 - }
62 -
63 - public string Web_
64 - {
65 - get => this.Fields[(int)IIsWebDirTupleFields.Web_].AsString();
66 - set => this.Set((int)IIsWebDirTupleFields.Web_, value);
57 + get => this.Fields[(int)IIsWebDirTupleFields.WebRef].AsString();
58 + set => this.Set((int)IIsWebDirTupleFields.WebRef, value);
59 }
60
61 public string Path
@@ -72,16 +64,16 @@ namespace WixToolset.Iis.Tuples
64 set => this.Set((int)IIsWebDirTupleFields.Path, value);
65 }
66
75 - public string DirProperties_
67 + public string DirPropertiesRef
68 {
77 - get => this.Fields[(int)IIsWebDirTupleFields.DirProperties_].AsString();
78 - set => this.Set((int)IIsWebDirTupleFields.DirProperties_, value);
69 + get => this.Fields[(int)IIsWebDirTupleFields.DirPropertiesRef].AsString();
70 + set => this.Set((int)IIsWebDirTupleFields.DirPropertiesRef, value);
71 }
72
81 - public string Application_
73 + public string ApplicationRef
74 {
83 - get => this.Fields[(int)IIsWebDirTupleFields.Application_].AsString();
84 - set => this.Set((int)IIsWebDirTupleFields.Application_, value);
75 + get => this.Fields[(int)IIsWebDirTupleFields.ApplicationRef].AsString();
76 + set => this.Set((int)IIsWebDirTupleFields.ApplicationRef, value);
77 }
78 }
79 }
\ No newline at end of file
src/wixext/Tuples/IIsWebLogTuple.cs
-8
@@ -11,7 +11,6 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebLog.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebLogTupleFields.Log), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(IIsWebLogTupleFields.Format), IntermediateFieldType.String),
15 },
16 typeof(IIsWebLogTuple));
@@ -24,7 +23,6 @@ namespace WixToolset.Iis.Tuples
23
24 public enum IIsWebLogTupleFields
25 {
27 - Log,
26 Format,
27 }
28
@@ -40,12 +38,6 @@ namespace WixToolset.Iis.Tuples
38
39 public IntermediateField this[IIsWebLogTupleFields index] => this.Fields[(int)index];
40
43 - public string Log
44 - {
45 - get => this.Fields[(int)IIsWebLogTupleFields.Log].AsString();
46 - set => this.Set((int)IIsWebLogTupleFields.Log, value);
47 - }
48 -
41 public string Format
42 {
43 get => this.Fields[(int)IIsWebLogTupleFields.Format].AsString();
src/wixext/Tuples/IIsWebServiceExtensionTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebServiceExtension.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebServiceExtensionTupleFields.WebServiceExtension), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(IIsWebServiceExtensionTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsWebServiceExtensionTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(IIsWebServiceExtensionTupleFields.File), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsWebServiceExtensionTupleFields.Description), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(IIsWebServiceExtensionTupleFields.Group), IntermediateFieldType.String),
@@ -28,8 +27,7 @@ namespace WixToolset.Iis.Tuples
27
28 public enum IIsWebServiceExtensionTupleFields
29 {
31 - WebServiceExtension,
32 - Component_,
30 + ComponentRef,
31 File,
32 Description,
33 Group,
@@ -48,16 +46,10 @@ namespace WixToolset.Iis.Tuples
46
47 public IntermediateField this[IIsWebServiceExtensionTupleFields index] => this.Fields[(int)index];
48
51 - public string WebServiceExtension
49 + public string ComponentRef
50 {
53 - get => this.Fields[(int)IIsWebServiceExtensionTupleFields.WebServiceExtension].AsString();
54 - set => this.Set((int)IIsWebServiceExtensionTupleFields.WebServiceExtension, value);
55 - }
56 -
57 - public string Component_
58 - {
59 - get => this.Fields[(int)IIsWebServiceExtensionTupleFields.Component_].AsString();
60 - set => this.Set((int)IIsWebServiceExtensionTupleFields.Component_, value);
51 + get => this.Fields[(int)IIsWebServiceExtensionTupleFields.ComponentRef].AsString();
52 + set => this.Set((int)IIsWebServiceExtensionTupleFields.ComponentRef, value);
53 }
54
55 public string File
src/wixext/Tuples/IIsWebSiteCertificatesTuple.cs
+10 -10
@@ -11,8 +11,8 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebSiteCertificates.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebSiteCertificatesTupleFields.Web_), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(IIsWebSiteCertificatesTupleFields.Certificate_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsWebSiteCertificatesTupleFields.WebRef), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(IIsWebSiteCertificatesTupleFields.CertificateRef), IntermediateFieldType.String),
16 },
17 typeof(IIsWebSiteCertificatesTuple));
18 }
@@ -24,8 +24,8 @@ namespace WixToolset.Iis.Tuples
24
25 public enum IIsWebSiteCertificatesTupleFields
26 {
27 - Web_,
28 - Certificate_,
27 + WebRef,
28 + CertificateRef,
29 }
30
31 public class IIsWebSiteCertificatesTuple : IntermediateTuple
@@ -40,16 +40,16 @@ namespace WixToolset.Iis.Tuples
40
41 public IntermediateField this[IIsWebSiteCertificatesTupleFields index] => this.Fields[(int)index];
42
43 - public string Web_
43 + public string WebRef
44 {
45 - get => this.Fields[(int)IIsWebSiteCertificatesTupleFields.Web_].AsString();
46 - set => this.Set((int)IIsWebSiteCertificatesTupleFields.Web_, value);
45 + get => this.Fields[(int)IIsWebSiteCertificatesTupleFields.WebRef].AsString();
46 + set => this.Set((int)IIsWebSiteCertificatesTupleFields.WebRef, value);
47 }
48
49 - public string Certificate_
49 + public string CertificateRef
50 {
51 - get => this.Fields[(int)IIsWebSiteCertificatesTupleFields.Certificate_].AsString();
52 - set => this.Set((int)IIsWebSiteCertificatesTupleFields.Certificate_, value);
51 + get => this.Fields[(int)IIsWebSiteCertificatesTupleFields.CertificateRef].AsString();
52 + set => this.Set((int)IIsWebSiteCertificatesTupleFields.CertificateRef, value);
53 }
54 }
55 }
\ No newline at end of file
src/wixext/Tuples/IIsWebSiteTuple.cs
+30 -38
@@ -11,18 +11,17 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebSite.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Web), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Description), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.ConnectionTimeout), IntermediateFieldType.Number),
18 - new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Directory_), IntermediateFieldType.String),
17 + new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.DirectoryRef), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.State), IntermediateFieldType.Number),
19 new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Attributes), IntermediateFieldType.Number),
21 - new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.KeyAddress_), IntermediateFieldType.String),
22 - new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.DirProperties_), IntermediateFieldType.String),
23 - new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Application_), IntermediateFieldType.String),
20 + new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.KeyAddressRef), IntermediateFieldType.String),
21 + new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.DirPropertiesRef), IntermediateFieldType.String),
22 + new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.ApplicationRef), IntermediateFieldType.String),
23 new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Sequence), IntermediateFieldType.Number),
25 - new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.Log_), IntermediateFieldType.String),
24 + new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.LogRef), IntermediateFieldType.String),
25 new IntermediateFieldDefinition(nameof(IIsWebSiteTupleFields.WebsiteId), IntermediateFieldType.String),
26 },
27 typeof(IIsWebSiteTuple));
@@ -35,18 +34,17 @@ namespace WixToolset.Iis.Tuples
34
35 public enum IIsWebSiteTupleFields
36 {
38 - Web,
39 - Component_,
37 + ComponentRef,
38 Description,
39 ConnectionTimeout,
42 - Directory_,
40 + DirectoryRef,
41 State,
42 Attributes,
45 - KeyAddress_,
46 - DirProperties_,
47 - Application_,
43 + KeyAddressRef,
44 + DirPropertiesRef,
45 + ApplicationRef,
46 Sequence,
49 - Log_,
47 + LogRef,
48 WebsiteId,
49 }
50
@@ -62,16 +60,10 @@ namespace WixToolset.Iis.Tuples
60
61 public IntermediateField this[IIsWebSiteTupleFields index] => this.Fields[(int)index];
62
65 - public string Web
63 + public string ComponentRef
64 {
67 - get => this.Fields[(int)IIsWebSiteTupleFields.Web].AsString();
68 - set => this.Set((int)IIsWebSiteTupleFields.Web, value);
69 - }
70 -
71 - public string Component_
72 - {
73 - get => this.Fields[(int)IIsWebSiteTupleFields.Component_].AsString();
74 - set => this.Set((int)IIsWebSiteTupleFields.Component_, value);
65 + get => this.Fields[(int)IIsWebSiteTupleFields.ComponentRef].AsString();
66 + set => this.Set((int)IIsWebSiteTupleFields.ComponentRef, value);
67 }
68
69 public string Description
@@ -86,10 +78,10 @@ namespace WixToolset.Iis.Tuples
78 set => this.Set((int)IIsWebSiteTupleFields.ConnectionTimeout, value);
79 }
80
89 - public string Directory_
81 + public string DirectoryRef
82 {
91 - get => this.Fields[(int)IIsWebSiteTupleFields.Directory_].AsString();
92 - set => this.Set((int)IIsWebSiteTupleFields.Directory_, value);
83 + get => this.Fields[(int)IIsWebSiteTupleFields.DirectoryRef].AsString();
84 + set => this.Set((int)IIsWebSiteTupleFields.DirectoryRef, value);
85 }
86
87 public int State
@@ -104,22 +96,22 @@ namespace WixToolset.Iis.Tuples
96 set => this.Set((int)IIsWebSiteTupleFields.Attributes, value);
97 }
98
107 - public string KeyAddress_
99 + public string KeyAddressRef
100 {
109 - get => this.Fields[(int)IIsWebSiteTupleFields.KeyAddress_].AsString();
110 - set => this.Set((int)IIsWebSiteTupleFields.KeyAddress_, value);
101 + get => this.Fields[(int)IIsWebSiteTupleFields.KeyAddressRef].AsString();
102 + set => this.Set((int)IIsWebSiteTupleFields.KeyAddressRef, value);
103 }
104
113 - public string DirProperties_
105 + public string DirPropertiesRef
106 {
115 - get => this.Fields[(int)IIsWebSiteTupleFields.DirProperties_].AsString();
116 - set => this.Set((int)IIsWebSiteTupleFields.DirProperties_, value);
107 + get => this.Fields[(int)IIsWebSiteTupleFields.DirPropertiesRef].AsString();
108 + set => this.Set((int)IIsWebSiteTupleFields.DirPropertiesRef, value);
109 }
110
119 - public string Application_
111 + public string ApplicationRef
112 {
121 - get => this.Fields[(int)IIsWebSiteTupleFields.Application_].AsString();
122 - set => this.Set((int)IIsWebSiteTupleFields.Application_, value);
113 + get => this.Fields[(int)IIsWebSiteTupleFields.ApplicationRef].AsString();
114 + set => this.Set((int)IIsWebSiteTupleFields.ApplicationRef, value);
115 }
116
117 public int Sequence
@@ -128,10 +120,10 @@ namespace WixToolset.Iis.Tuples
120 set => this.Set((int)IIsWebSiteTupleFields.Sequence, value);
121 }
122
131 - public string Log_
123 + public string LogRef
124 {
133 - get => this.Fields[(int)IIsWebSiteTupleFields.Log_].AsString();
134 - set => this.Set((int)IIsWebSiteTupleFields.Log_, value);
125 + get => this.Fields[(int)IIsWebSiteTupleFields.LogRef].AsString();
126 + set => this.Set((int)IIsWebSiteTupleFields.LogRef, value);
127 }
128
129 public string WebsiteId
src/wixext/Tuples/IIsWebVirtualDirTuple.cs
+25 -33
@@ -11,13 +11,12 @@ namespace WixToolset.Iis
11 IisTupleDefinitionType.IIsWebVirtualDir.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.VirtualDir), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.Component_), IntermediateFieldType.String),
16 - new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.Web_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.ComponentRef), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.WebRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.Alias), IntermediateFieldType.String),
18 - new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.Directory_), IntermediateFieldType.String),
19 - new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.DirProperties_), IntermediateFieldType.String),
20 - new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.Application_), IntermediateFieldType.String),
17 + new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.DirectoryRef), IntermediateFieldType.String),
18 + new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.DirPropertiesRef), IntermediateFieldType.String),
19 + new IntermediateFieldDefinition(nameof(IIsWebVirtualDirTupleFields.ApplicationRef), IntermediateFieldType.String),
20 },
21 typeof(IIsWebVirtualDirTuple));
22 }
@@ -29,13 +28,12 @@ namespace WixToolset.Iis.Tuples
28
29 public enum IIsWebVirtualDirTupleFields
30 {
32 - VirtualDir,
33 - Component_,
34 - Web_,
31 + ComponentRef,
32 + WebRef,
33 Alias,
36 - Directory_,
37 - DirProperties_,
38 - Application_,
34 + DirectoryRef,
35 + DirPropertiesRef,
36 + ApplicationRef,
37 }
38
39 public class IIsWebVirtualDirTuple : IntermediateTuple
@@ -50,22 +48,16 @@ namespace WixToolset.Iis.Tuples
48
49 public IntermediateField this[IIsWebVirtualDirTupleFields index] => this.Fields[(int)index];
50
53 - public string VirtualDir
51 + public string ComponentRef
52 {
55 - get => this.Fields[(int)IIsWebVirtualDirTupleFields.VirtualDir].AsString();
56 - set => this.Set((int)IIsWebVirtualDirTupleFields.VirtualDir, value);
53 + get => this.Fields[(int)IIsWebVirtualDirTupleFields.ComponentRef].AsString();
54 + set => this.Set((int)IIsWebVirtualDirTupleFields.ComponentRef, value);
55 }
56
59 - public string Component_
57 + public string WebRef
58 {
61 - get => this.Fields[(int)IIsWebVirtualDirTupleFields.Component_].AsString();
62 - set => this.Set((int)IIsWebVirtualDirTupleFields.Component_, value);
63 - }
64 -
65 - public string Web_
66 - {
67 - get => this.Fields[(int)IIsWebVirtualDirTupleFields.Web_].AsString();
68 - set => this.Set((int)IIsWebVirtualDirTupleFields.Web_, value);
59 + get => this.Fields[(int)IIsWebVirtualDirTupleFields.WebRef].AsString();
60 + set => this.Set((int)IIsWebVirtualDirTupleFields.WebRef, value);
61 }
62
63 public string Alias
@@ -74,22 +66,22 @@ namespace WixToolset.Iis.Tuples
66 set => this.Set((int)IIsWebVirtualDirTupleFields.Alias, value);
67 }
68
77 - public string Directory_
69 + public string DirectoryRef
70 {
79 - get => this.Fields[(int)IIsWebVirtualDirTupleFields.Directory_].AsString();
80 - set => this.Set((int)IIsWebVirtualDirTupleFields.Directory_, value);
71 + get => this.Fields[(int)IIsWebVirtualDirTupleFields.DirectoryRef].AsString();
72 + set => this.Set((int)IIsWebVirtualDirTupleFields.DirectoryRef, value);
73 }
74
83 - public string DirProperties_
75 + public string DirPropertiesRef
76 {
85 - get => this.Fields[(int)IIsWebVirtualDirTupleFields.DirProperties_].AsString();
86 - set => this.Set((int)IIsWebVirtualDirTupleFields.DirProperties_, value);
77 + get => this.Fields[(int)IIsWebVirtualDirTupleFields.DirPropertiesRef].AsString();
78 + set => this.Set((int)IIsWebVirtualDirTupleFields.DirPropertiesRef, value);
79 }
80
89 - public string Application_
81 + public string ApplicationRef
82 {
91 - get => this.Fields[(int)IIsWebVirtualDirTupleFields.Application_].AsString();
92 - set => this.Set((int)IIsWebVirtualDirTupleFields.Application_, value);
83 + get => this.Fields[(int)IIsWebVirtualDirTupleFields.ApplicationRef].AsString();
84 + set => this.Set((int)IIsWebVirtualDirTupleFields.ApplicationRef, value);
85 }
86 }
87 }
\ No newline at end of file
src/wixext/WixToolset.Iis.wixext.csproj
-1
@@ -14,7 +14,6 @@
14 <ItemGroup>
15 <Content Include="$(MSBuildThisFileName).targets" />
16 <Content Include="iis.xsd" PackagePath="tools" />
17 - <EmbeddedResource Include="tables.xml" />
17 <EmbeddedResource Include="$(OutputPath)..\iis.wixlib" />
18 </ItemGroup>
19
src/wixext/tables.xml deleted
-304
@@ -1,304 +0,0 @@
1 -<?xml version="1.0" encoding="utf-8" ?>
2 -<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3 -
4 -
5 -<tableDefinitions xmlns="http://wixtoolset.org/schemas/v4/wi/tables">
6 - <tableDefinition name="Certificate" createSymbols="yes">
7 - <columnDefinition name="Certificate" type="string" length="72" primaryKey="yes" modularize="column"
8 - keyColumn="1" category="identifier" description="Identifier for the certificate in the package."/>
9 - <columnDefinition name="Component_" type="string" length="72" modularize="column"
10 - category="identifier" description="Foreign key into the Component table used to determine install state"/>
11 - <columnDefinition name="Name" type="string" length="255"
12 - category="formatted" description="Name to be used for the Certificate."/>
13 - <columnDefinition name="StoreLocation" type="number" length="2"
14 - minValue="1" maxValue="2" description="Location of the target certificate store (CurrentUser == 1, LocalMachine == 2)"/>
15 - <columnDefinition name="StoreName" type="string" length="64"
16 - category="formatted" description="Name of the target certificate store"/>
17 - <columnDefinition name="Attributes" type="number" length="4"
18 - minValue="0" maxValue="2147483647" description="Attributes of the certificate"/>
19 - <columnDefinition name="Binary_" type="string" length="72" nullable="yes" modularize="column"
20 - keyTable="Binary" keyColumn="1" category="identifier" description="Identifier to Binary table containing certificate."/>
21 - <columnDefinition name="CertificatePath" type="string" length="0" nullable="yes" modularize="property"
22 - category="formatted" description="Property to path of certificate."/>
23 - <columnDefinition name="PFXPassword" type="string" length="0" nullable="yes" modularize="property"
24 - category="formatted" description="Hidden property to a pfx password"/>
25 - </tableDefinition>
26 - <tableDefinition name="CertificateHash" createSymbols="yes">
27 - <columnDefinition name="Certificate_" type="string" length="72" primaryKey="yes" modularize="column"
28 - keyColumn="1" category="identifier" description="Foreign key to certificate in Certificate table."/>
29 - <columnDefinition name="Hash" type="string" length="0" nullable="yes"
30 - category="text" description="Base64 encoded SHA1 hash of certificate populated at run-time."/>
31 - </tableDefinition>
32 - <tableDefinition name="IIsWebSiteCertificates">
33 - <columnDefinition name="Web_" type="string" length="72" primaryKey="yes" modularize="column"
34 - keyTable="IIsWebSite" keyColumn="1" category="identifier" description="The index into the IIsWebSite table."/>
35 - <columnDefinition name="Certificate_" type="string" length="72" primaryKey="yes" modularize="column"
36 - keyTable="Certificate" keyColumn="1" category="text" description="The index into the Certificate table."/>
37 - </tableDefinition>
38 - <tableDefinition name="IIsAppPool" createSymbols="yes">
39 - <columnDefinition name="AppPool" type="string" length="72" primaryKey="yes" modularize="column"
40 - category="identifier" description="Primary key, non-localized token for apppool"/>
41 - <columnDefinition name="Name" type="string" length="72" modularize="property"
42 - category="formatted" description="Name to be used for the IIs AppPool."/>
43 - <columnDefinition name="Component_" type="string" length="72" modularize="column" nullable="yes"
44 - keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the app pool"/>
45 - <columnDefinition name="Attributes" type="number" length="2"
46 - description="Attributes of the AppPool"/>
47 - <columnDefinition name="User_" type="string" length="72" nullable="yes" modularize="column"
48 - keyTable="User" keyColumn="1" category="identifier" description="User account to run the app pool as"/>
49 - <columnDefinition name="RecycleMinutes" type="number" length="2" nullable="yes"
50 - description="Number of minutes between recycling app pool"/>
51 - <columnDefinition name="RecycleRequests" type="number" length="2" nullable="yes"
52 - description="Number of requests between recycling app pool"/>
53 - <columnDefinition name="RecycleTimes" type="string" length="72" nullable="yes"
54 - description="Times to recycle app pool (comma delimited - i.e. 1:45,13:30)"/>
55 - <columnDefinition name="IdleTimeout" type="number" length="2" nullable="yes"
56 - description="Amount of idle time before shutting down"/>
57 - <columnDefinition name="QueueLimit" type="number" length="2" nullable="yes"
58 - description="Reject requests after queue gets how large"/>
59 - <columnDefinition name="CPUMon" type="string" length="72" nullable="yes"
60 - description="CPUMon is a comma delimeted list of the following format: &lt;percent CPU usage&gt;,&lt;refress minutes&gt;,&lt;Action&gt;. The values for Action are 1 (Shutdown) and 0 (No Action)."/>
61 - <columnDefinition name="MaxProc" type="number" length="2" nullable="yes"
62 - description="Maximum number of processes to use"/>
63 - <columnDefinition name="VirtualMemory" type="number" length="4" nullable="yes"
64 - description="Amount of virtual memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this field is 4,294,967 KB."/>
65 - <columnDefinition name="PrivateMemory" type="number" length="4" nullable="yes"
66 - description="Amount of private memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this field is 4,294,967 KB."/>
67 - <columnDefinition name="ManagedRuntimeVersion" type="string" length="72" nullable="yes"
68 - description="Specifies the .NET Framework version to be used by the application pool."/>
69 - <columnDefinition name="ManagedPipelineMode" type="string" length="72" nullable="yes"
70 - description="Specifies the request-processing mode that is used to process requests for managed content."/>
71 - </tableDefinition>
72 - <tableDefinition name="IIsMimeMap">
73 - <columnDefinition name="MimeMap" type="string" length="72" primaryKey="yes" modularize="column"
74 - category="identifier" description="Primary key, non-localized token for Mime Map definitions"/>
75 - <columnDefinition name="ParentType" type="number" length="2"
76 - set="1;2" description="Type of parent: 1=vdir 2=website"/>
77 - <columnDefinition name="ParentValue" type="string" length="72" modularize="column"
78 - category="identifier" description="Name of the parent value."/>
79 - <columnDefinition name="MimeType" type="string" length="72"
80 - category="text" description="Mime-type covered by the MimeMap."/>
81 - <columnDefinition name="Extension" type="string" length="72"
82 - category="text" description="Extension covered by the MimeMap."/>
83 - </tableDefinition>
84 - <tableDefinition name="IIsProperty">
85 - <columnDefinition name="Property" type="string" length="72" primaryKey="yes"
86 - category="identifier" description="Unique name of the IIsProperty"/>
87 - <columnDefinition name="Component_" type="string" length="72" modularize="column"
88 - keyTable="Component" keyColumn="1" category="identifier" description="Component that the property is linked to" />
89 - <columnDefinition name="Attributes" type="number" length="2"
90 - description="Attributes of the IIsProperty (unused)"/>
91 - <columnDefinition name="Value" type="string" length="72" nullable="yes"
92 - description="Value of the IIsProperty"/>
93 - </tableDefinition>
94 - <tableDefinition name="IIsWebDirProperties" createSymbols="yes">
95 - <columnDefinition name="DirProperties" type="string" length="72" primaryKey="yes" modularize="column"
96 - category="identifier" description="Primary key, non-localized token for Web Properties"/>
97 - <columnDefinition name="Access" type="number" length="2" nullable="yes"
98 - description="Access rights to the web server"/>
99 - <columnDefinition name="Authorization" type="number" length="2" nullable="yes"
100 - description="Authorization policy to web server (anonymous access, NTLM, etc)"/>
101 - <columnDefinition name="AnonymousUser_" type="string" length="72" nullable="yes" modularize="column"
102 - keyTable="User" keyColumn="1" category="identifier" description="Foreign key, User used to log into database"/>
103 - <columnDefinition name="IIsControlledPassword" type="number" length="2" nullable="yes"
104 - set="0;1" description="Specifies whether IIs is allowed to set the AnonymousUser_ password"/>
105 - <columnDefinition name="LogVisits" type="number" length="2" nullable="yes"
106 - set="0;1" description="Specifies whether IIs tracks all access to the directory"/>
107 - <columnDefinition name="Index" type="number" length="2" nullable="yes"
108 - set="0;1" description="Specifies whether IIs searches the directory"/>
109 - <columnDefinition name="DefaultDoc" type="string" length="255" nullable="yes"
110 - category="text" description="Comma delimited list of file names to act as a default document"/>
111 - <columnDefinition name="AspDetailedError" type="number" length="2" nullable="yes"
112 - set="0;1" description="Specifies whether detailed ASP errors are sent to browser"/>
113 - <columnDefinition name="HttpExpires" type="string" length="255" nullable="yes" escapeIdtCharacters="yes"
114 - category="text" description="Value to set the HttpExpires attribute to for a Web Dir in the metabase"/>
115 - <columnDefinition name="CacheControlMaxAge" type="number" length="4" nullable="yes"
116 - description="Integer value specifying the cache control maximum age value."/>
117 - <columnDefinition name="CacheControlCustom" type="string" length="255" nullable="yes" escapeIdtCharacters="yes"
118 - category="text" description="Custom HTTP 1.1 cache control directives."/>
119 - <columnDefinition name="NoCustomError" type="number" length="2" nullable="yes"
120 - set="0;1" description="Specifies whether IIs will return custom errors for this directory."/>
121 - <columnDefinition name="AccessSSLFlags" type="number" length="2" nullable="yes"
122 - description="Specifies AccessSSLFlags IIS metabase property."/>
123 - <columnDefinition name="AuthenticationProviders" type="string" length="255" nullable="yes"
124 - category="text" description="Comma delimited list, in order of precedence, of Windows authentication providers that IIS will attempt to use: NTLM, Kerberos, Negotiate, and others."/>
125 - </tableDefinition>
126 - <tableDefinition name="IIsWebAddress" createSymbols="yes">
127 - <columnDefinition name="Address" type="string" length="72" primaryKey="yes" modularize="column"
128 - category="identifier" description="Primary key, non-localized token"/>
129 - <columnDefinition name="Web_" type="string" length="72" modularize="column"
130 - keyTable="IIsWebSite" keyColumn="1" category="identifier" description="Foreign key referencing Web that uses the address."/>
131 - <columnDefinition name="IP" type="string" length="255" nullable="yes" modularize="property"
132 - category="text" description="String representing IP address (#.#.#.#) or NT machine name (fooserver)"/>
133 - <columnDefinition name="Port" type="string" length="72" modularize="property"
134 - category="formatted" description="Port web site listens on"/>
135 - <columnDefinition name="Header" type="string" length="255" nullable="yes"
136 - category="text" description="Special header information for the web site"/>
137 - <columnDefinition name="Secure" type="number" length="2" nullable="yes"
138 - set="0;1" description="Specifies whether SSL is used to communicate with web site"/>
139 - </tableDefinition>
140 - <tableDefinition name="IIsWebSite" createSymbols="yes">
141 - <columnDefinition name="Web" type="string" length="72" primaryKey="yes" modularize="column"
142 - category="identifier" description="Primary key, non-localized token"/>
143 - <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column"
144 - keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the web site"/>
145 - <columnDefinition name="Description" type="string" length="255" nullable="yes"
146 - category="formatted" description="Description displayed in IIS MMC applet"/>
147 - <columnDefinition name="ConnectionTimeout" type="number" length="2" nullable="yes"
148 - description="Time connection is maintained without activity (in seconds)"/>
149 - <columnDefinition name="Directory_" type="string" length="72" nullable="yes" modularize="column"
150 - keyTable="Directory" keyColumn="1" category="identifier" description="Foreign key referencing directory that the web site points at"/>
151 - <columnDefinition name="State" type="number" length="2" nullable="yes"
152 - set="0;1;2" description="Sets intial state of web site"/>
153 - <columnDefinition name="Attributes" type="number" length="2" nullable="yes"
154 - set="2" description="Control the install behavior of web site"/>
155 - <columnDefinition name="KeyAddress_" type="string" length="72" modularize="column"
156 - keyTable="IIsWebAddress" keyColumn="1" category="identifier" description="Foreign key referencing primary address for the web site"/>
157 - <columnDefinition name="DirProperties_" type="string" length="72" nullable="yes" modularize="column"
158 - keyTable="IIsWebDirProperties" keyColumn="1" category="identifier" description="Foreign key referencing possible security information for the web site"/>
159 - <columnDefinition name="Application_" type="string" length="72" nullable="yes" modularize="column"
160 - keyTable="IIsWebApplication" keyColumn="1" category="identifier" description="Foreign key referencing possible ASP application for the web site."/>
161 - <columnDefinition name="Sequence" type="number" length="2" nullable="yes"
162 - description="Allows ordering of web site install"/>
163 - <columnDefinition name="Log_" type="string" length="72" nullable="yes" modularize="column"
164 - keyTable="IIsWebLog" keyColumn="1" description="Foreign key reference to IIsWebLog data"/>
165 - <columnDefinition name="Id" type="string" length="74" nullable="yes"
166 - category="formatted" description="Optional number or formatted value that resolves to number that acts as the WebSite Id."/>
167 - </tableDefinition>
168 - <tableDefinition name="IIsWebApplication" createSymbols="yes">
169 - <columnDefinition name="Application" type="string" length="72" primaryKey="yes" modularize="column"
170 - category="identifier" description="Primary key, non-localized token for ASP Application"/>
171 - <columnDefinition name="Name" type="localized" length="255" modularize="property"
172 - category="formatted" description="Name of application in IIS MMC applet"/>
173 - <columnDefinition name="Isolation" type="number" length="2"
174 - set="0;1;2" description="Isolation level for ASP Application: 0 == Low, 2 == Medium, 1 == High"/>
175 - <columnDefinition name="AllowSessions" type="number" length="2" nullable="yes"
176 - set="0;1" description="Specifies whether application may maintain session state"/>
177 - <columnDefinition name="SessionTimeout" type="number" length="2" nullable="yes"
178 - description="Time session state is maintained without user interaction"/>
179 - <columnDefinition name="Buffer" type="number" length="2" nullable="yes"
180 - set="0;1" description="Specifies whether application buffers its output"/>
181 - <columnDefinition name="ParentPaths" type="number" length="2" nullable="yes"
182 - set="0;1" description="What is this for anyway?"/>
183 - <columnDefinition name="DefaultScript" type="string" length="26" nullable="yes"
184 - category="text" set="VBScript;JScript" description="Default scripting language for ASP applications"/>
185 - <columnDefinition name="ScriptTimeout" type="number" length="2" nullable="yes"
186 - description="Time ASP application page is permitted to process"/>
187 - <columnDefinition name="ServerDebugging" type="number" length="2" nullable="yes"
188 - set="0;1" description="Specifies whether to allow ASP server-side script debugging"/>
189 - <columnDefinition name="ClientDebugging" type="number" length="2" nullable="yes"
190 - set="0;1" description="Specifies whether to allow ASP client-side script debugging"/>
191 - <columnDefinition name="AppPool_" type="string" length="72" nullable="yes" modularize="column"
192 - keyTable="IIsAppPool" keyColumn="1" category="identifier" description="App Pool this application should run under"/>
193 - </tableDefinition>
194 - <tableDefinition name="IIsWebApplicationExtension" createSymbols="yes">
195 - <columnDefinition name="Application_" type="string" length="72" primaryKey="yes" modularize="column"
196 - keyTable="IIsWebApplication" keyColumn="1" category="identifier" description="Foreign key referencing possible ASP application for the web site"/>
197 - <columnDefinition name="Extension" type="string" length="255" primaryKey="yes" nullable="yes"
198 - category="text" description="Primary key, Extension that should be registered for this ASP application"/>
199 - <columnDefinition name="Verbs" type="string" length="255" nullable="yes"
200 - category="text" description="Comma delimited list of HTTP verbs the extension should be registered with"/>
201 - <columnDefinition name="Executable" type="string" length="255" modularize="property"
202 - category="formatted" description="Path to extension (usually file property: [#file])"/>
203 - <columnDefinition name="Attributes" type="number" length="2" nullable="yes"
204 - set="1;4;5" description="Attributes for extension: 1 == Script, 4 == Check Path Info"/>
205 - </tableDefinition>
206 - <tableDefinition name="IIsFilter" createSymbols="yes">
207 - <columnDefinition name="Filter" type="string" length="72" primaryKey="yes" modularize="column"
208 - category="identifier" description="Primary key, non-localized token"/>
209 - <columnDefinition name="Name" type="string" length="72"
210 - description="Name of the ISAPI Filter in IIS"/>
211 - <columnDefinition name="Component_" type="string" length="72" modularize="column"
212 - keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the filter"/>
213 - <columnDefinition name="Path" type="string" length="255" nullable="yes" modularize="property"
214 - category="formatted" description="Path to filter (usually file property: [#file])"/>
215 - <columnDefinition name="Web_" type="string" length="72" nullable="yes" modularize="column"
216 - keyTable="IIsWebSite" keyColumn="1" category="identifier" description="Foreign key referencing web site that loads the filter (NULL == global filter"/>
217 - <columnDefinition name="Description" type="string" length="255" nullable="yes"
218 - category="formatted" description="Description displayed in IIS MMC applet"/>
219 - <columnDefinition name="Flags" type="number" length="4"
220 - minValue="0" maxValue="2147483647" description="What do all these numbers mean?"/>
221 - <columnDefinition name="LoadOrder" type="number" length="2" nullable="yes"
222 - description="-1 == last in order, 0 == first in order, # == place in order"/>
223 - </tableDefinition>
224 - <tableDefinition name="IIsWebDir" createSymbols="yes">
225 - <columnDefinition name="WebDir" type="string" length="72" primaryKey="yes" modularize="column"
226 - category="identifier" description="Primary key, non-localized token"/>
227 - <columnDefinition name="Component_" type="string" length="72" modularize="column"
228 - keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the virtual directory"/>
229 - <columnDefinition name="Web_" type="string" length="72" modularize="column"
230 - keyTable="IIsWebSite" keyColumn="1" category="identifier" description="Foreign key referencing web site that controls the virtual directory"/>
231 - <columnDefinition name="Path" type="string" length="255" modularize="property"
232 - category="formatted" description="Name of web directory displayed in IIS MMC applet"/>
233 - <columnDefinition name="DirProperties_" type="string" length="72" nullable="yes" modularize="column"
234 - keyTable="IIsWebDirProperties" keyColumn="1" category="identifier" description="Foreign key referencing possible security information for the virtual directory"/>
235 - <columnDefinition name="Application_" type="string" length="72" nullable="yes" modularize="column"
236 - keyTable="IIsWebApplication" keyColumn="1" category="identifier" description="Foreign key referencing possible ASP application for the virtual directory. This column is currently unused, but maintained for compatibility reasons."/>
237 - </tableDefinition>
238 - <tableDefinition name="IIsWebError">
239 - <columnDefinition name="ErrorCode" type="number" length="2" primaryKey="yes"
240 - minValue="400" maxValue="599" description="HTTP status code indicating error."/>
241 - <columnDefinition name="SubCode" type="number" length="4" primaryKey="yes"
242 - description="HTTP sub-status code indicating error."/>
243 - <columnDefinition name="ParentType" type="number" length="2" primaryKey="yes"
244 - set="1;2" description="Type of parent: 1=vdir, 2=web"/>
245 - <columnDefinition name="ParentValue" type="string" length="72" modularize="column" primaryKey="yes"
246 - category="identifier" description="Name of the parent value."/>
247 - <columnDefinition name="File" type="string" length="255" nullable="yes"
248 - category="formatted" description="Path to file for this custom error (usually file property: [#file]). Must be null if URL is not null."/>
249 - <columnDefinition name="URL" type="string" length="255" nullable="yes"
250 - category="formatted" description="URL for this custom error. Must be null if File is not null."/>
251 - </tableDefinition>
252 - <tableDefinition name="IIsHttpHeader" createSymbols="yes">
253 - <columnDefinition name="HttpHeader" type="string" length="72" primaryKey="yes" modularize="column"
254 - category="identifier" description="Primary key, non-localized token"/>
255 - <columnDefinition name="ParentType" type="number" length="2" primaryKey="yes"
256 - set="1;2" description="Type of parent: 1=vdir, 2=web"/>
257 - <columnDefinition name="ParentValue" type="string" length="72" primaryKey="yes" modularize="column"
258 - category="identifier" description="Name of the parent value."/>
259 - <columnDefinition name="Name" type="string" length="255"
260 - category="text" description="Name of the HTTP Header"/>
261 - <columnDefinition name="Value" type="string" length="255" nullable="yes"
262 - category="formatted" description="URL for this custom error. Must be null if File is not null."/>
263 - <columnDefinition name="Attributes" type="number" length="2"
264 - minValue="0" maxValue="0" description="Attributes for HTTP Header: none"/>
265 - <columnDefinition name="Sequence" type="number" length="2" nullable="yes"
266 - description="Order to add the HTTP Headers."/>
267 - </tableDefinition>
268 - <tableDefinition name="IIsWebServiceExtension" createSymbols="yes">
269 - <columnDefinition name="WebServiceExtension" type="string" length="72" primaryKey="yes" modularize="column"
270 - category="identifier" description="Primary key, non-localized token"/>
271 - <columnDefinition name="Component_" type="string" length="72" modularize="column"
272 - keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the WebServiceExtension handler"/>
273 - <columnDefinition name="File" type="string" length="255" modularize="property"
274 - category="formatted" description="Path to handler (usually file property: [#file])"/>
275 - <columnDefinition name="Description" type="localized" length="255" nullable="yes" modularize="property" escapeIdtCharacters="yes"
276 - category="formatted" description="Description displayed in WebServiceExtension Wizard"/>
277 - <columnDefinition name="Group" type="string" length="255" nullable="yes" modularize="property"
278 - category="formatted" description="String used to identify groups of extensions."/>
279 - <columnDefinition name="Attributes" type="number" length="1"
280 - minValue="0" maxValue="3" description="Attributes for WebServiceExtension: 1 = Allow, 2 = UIDeletable"/>
281 - </tableDefinition>
282 - <tableDefinition name="IIsWebVirtualDir" createSymbols="yes">
283 - <columnDefinition name="VirtualDir" type="string" length="72" primaryKey="yes" modularize="column"
284 - category="identifier" description="Primary key, non-localized token"/>
285 - <columnDefinition name="Component_" type="string" length="72" modularize="column"
286 - keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the virtual directory"/>
287 - <columnDefinition name="Web_" type="string" length="72" modularize="column"
288 - keyTable="IIsWebSite" keyColumn="1" category="identifier" description="Foreign key referencing web site that controls the virtual directory"/>
289 - <columnDefinition name="Alias" type="string" length="255" modularize="property"
290 - category="formatted" description="Name of virtual directory displayed in IIS MMC applet"/>
291 - <columnDefinition name="Directory_" type="string" length="72" modularize="column"
292 - keyTable="Directory" keyColumn="1" category="identifier" description="Foreign key referencing directory that the virtual directory points at"/>
293 - <columnDefinition name="DirProperties_" type="string" length="72" nullable="yes" modularize="column"
294 - keyTable="IIsWebDirProperties" keyColumn="1" category="identifier" description="Foreign key referencing possible security information for the virtual directory"/>
295 - <columnDefinition name="Application_" type="string" length="72" nullable="yes" modularize="column"
296 - keyTable="IIsWebApplication" keyColumn="1" category="identifier" description="Foreign key referencing possible ASP application for the virtual directory"/>
297 - </tableDefinition>
298 - <tableDefinition name="IIsWebLog" createSymbols="yes">
299 - <columnDefinition name="Log" type="string" length="72" primaryKey="yes" modularize="column"
300 - category="identifier" description="Primary key, non-localized token"/>
301 - <columnDefinition name="Format" type="string" length="255"
302 - category="text" description="Type of log format"/>
303 - </tableDefinition>
304 -</tableDefinitions>
src/wixlib/iis.wixproj
+2 -2
@@ -1,7 +1,7 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3 <Project DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0">
4 - <Import Project="..\..\packages\WixToolset.MSBuild.4.0.0-build-0080\build\WixToolset.MSBuild.props" Condition="Exists('..\..\packages\WixToolset.MSBuild.4.0.0-build-0080\build\WixToolset.MSBuild.props')" />
4 + <Import Project="..\..\packages\WixToolset.MSBuild.4.0.0-build-0083\build\WixToolset.MSBuild.props" Condition="Exists('..\..\packages\WixToolset.MSBuild.4.0.0-build-0083\build\WixToolset.MSBuild.props')" />
5 <Import Project="..\FindLocalWix.props" />
6 <PropertyGroup>
7 <ProjectGuid>{92FE99D2-355D-4F52-A7C1-10EECB4A5BB1}</ProjectGuid>
@@ -38,7 +38,7 @@
38 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
39 </PropertyGroup>
40 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets'))" />
41 - <Error Condition="!Exists('..\..\packages\WixToolset.MSBuild.4.0.0-build-0080\build\WixToolset.MSBuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.MSBuild.4.0.0-build-0080\build\WixToolset.MSBuild.props'))" />
41 + <Error Condition="!Exists('..\..\packages\WixToolset.MSBuild.4.0.0-build-0083\build\WixToolset.MSBuild.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\WixToolset.MSBuild.4.0.0-build-0083\build\WixToolset.MSBuild.props'))" />
42 </Target>
43 <Import Project="..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.1.65\build\Nerdbank.GitVersioning.targets')" />
44 </Project>
\ No newline at end of file
src/wixlib/packages.config
+1 -1
@@ -1,5 +1,5 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <packages>
3 <package id="Nerdbank.GitVersioning" version="2.1.65" developmentDependency="true" targetFramework="net40" />
4 - <package id="WixToolset.MSBuild" version="4.0.0-build-0080" developmentDependency="true" targetFramework="net40" />
4 + <package id="WixToolset.MSBuild" version="4.0.0-build-0083" developmentDependency="true" targetFramework="net40" />
5 </packages>
\ No newline at end of file