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: <percent CPU usage>,<refress minutes>,<Action>. 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