diff --git a/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.msi b/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.msi
index 703f7be8..759bfca5 100644
Binary files a/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.msi and b/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.msi differ
diff --git a/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.wixpdb b/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.wixpdb
index b04ca192..367d0038 100644
--- a/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.wixpdb
+++ b/dev-support/vs.net-2008/templates/solution/AdoSolution/ADO.NET Class Library.wixpdb
@@ -1 +1 @@
-
112522Installation Database3ADO.NET Class Library4http://www.CodePlex.com/SolutionFactory5Installer6This installer database contains the logic and data required to install ADO.NET Class Library.7Intel;10339{CAC24D88-A26E-43BD-B1A0-D30C72246701}14200152192122009/12/15 17:20:29132009/12/15 17:20:2918Windows Installer XML (3.0.4805.0)
_SummaryInformationPropertyIdN_SummaryInformationValueN_ValidationTableNIdentifierName of table_ValidationColumnNIdentifierName of column_ValidationNullableNY;NWhether the column is nullable_ValidationMinValueY-21474836472147483647Minimum value allowed_ValidationMaxValueY-21474836472147483647Maximum value allowed_ValidationKeyTableYIdentifierFor foreign key, Name of table to which data must link_ValidationKeyColumnY132Column to which foreign key connects_ValidationCategoryYText;Formatted;Template;Condition;Guid;Path;Version;Language;Identifier;Binary;UpperCase;LowerCase;Filename;Paths;AnyPath;WildCardFilename;RegPath;KeyFormatted;CustomSource;Property;Cabinet;Shortcut;URLString category_ValidationSetYTextSet of values that are permitted_ValidationDescriptionYTextDescription of columnAdminExecuteSequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.AdminExecuteSequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.AdminExecuteSequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.AdminUISequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.AdminUISequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.AdminUISequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.AdvtExecuteSequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.AdvtExecuteSequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.AdvtExecuteSequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.AppSearchPropertyNIdentifierThe property associated with a SignatureAppSearchSignature_NSignature;RegLocator;IniLocator;DrLocator;CompLocator1IdentifierThe Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables.ComponentComponentNIdentifierPrimary key used to identify a particular component record.ComponentComponentIdYGuidA string GUID unique to this component, version, and language.ComponentDirectory_NDirectory1IdentifierRequired key of a Directory table record. This is actually a property name whose value contains the actual path, set either by the AppSearch action or with the default setting obtained from the Directory table.ComponentAttributesNRemote execution option, one of irsEnumComponentConditionYConditionA conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component.ComponentKeyPathYFile;Registry;ODBCDataSource1IdentifierEither the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.DirectoryDirectoryNIdentifierUnique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory.DirectoryDirectory_ParentYDirectory1IdentifierReference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree.DirectoryDefaultDirNDefaultDirThe default sub-path under parent's path.FeatureFeatureNIdentifierPrimary key used to identify a particular feature record.FeatureFeature_ParentYFeature1IdentifierOptional key of a parent record in the same table. If the parent is not selected, then the record will not be installed. Null indicates a root item.FeatureTitleYTextShort text identifying a visible feature item.FeatureDescriptionYTextLonger descriptive text describing a visible feature item.FeatureDisplayY032767Numeric sort order, used to force a specific display ordering.FeatureLevelN032767The install level at which record will be initially selected. An install level of 0 will disable an item and prevent its display.FeatureDirectory_YDirectory1UpperCaseThe name of the Directory that can be configured by the UI. A non-null value will enable the browse button.FeatureAttributesN0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54Feature attributesFeatureComponentsFeature_NFeature1IdentifierForeign key into Feature table.FeatureComponentsComponent_NComponent1IdentifierForeign key into Component table.FileFileNIdentifierPrimary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored.FileComponent_NComponent1IdentifierForeign key referencing Component that controls the file.FileFileNameNFilenameFile name used for installation, may be localized. This may contain a "short name|long name" pair.FileFileSizeN02147483647Size of file in bytes (long integer).FileVersionYFile1VersionVersion string for versioned files; Blank for unversioned files.FileLanguageYLanguageList of decimal language Ids, comma-separated if more than one.FileAttributesY032767Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses)FileSequenceN12147483647Sequence with respect to the media images; order must track cabinet order.IconNameNIdentifierPrimary key. Name of the icon file.IconDataNBinaryBinary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format.InstallExecuteSequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.InstallExecuteSequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.InstallExecuteSequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.InstallUISequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.InstallUISequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.InstallUISequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.MediaDiskIdN132767Primary key, integer to determine sort order for table.MediaLastSequenceN02147483647File sequence number for the last file for this media.MediaDiskPromptYTextDisk name: the visible text actually printed on the disk. This will be used to prompt the user when this disk needs to be inserted.MediaCabinetYCabinetIf some or all of the files stored on the media are compressed in a cabinet, the name of that cabinet.MediaVolumeLabelYTextThe label attributed to the volume.MediaSourceYPropertyThe property defining the location of the cabinet file.MsiFileHashFile_NFile1IdentifierPrimary key, foreign key into File table referencing file with this hashMsiFileHashOptionsN032767Various options and attributes for this hash.MsiFileHashHashPart1NSize of file in bytes (long integer).MsiFileHashHashPart2NSize of file in bytes (long integer).MsiFileHashHashPart3NSize of file in bytes (long integer).MsiFileHashHashPart4NSize of file in bytes (long integer).PropertyPropertyNIdentifierName of property, uppercase if settable by launcher or loader.PropertyValueNTextString value for property. Never null or empty.RegistryRegistryNIdentifierPrimary key, non-localized token.RegistryRootN-13The predefined root key for the registry value, one of rrkEnum.RegistryKeyNRegPathThe key for the registry value.RegistryNameYFormattedThe registry value name.RegistryValueYFormattedThe registry value.RegistryComponent_NComponent1IdentifierForeign key into the Component table referencing component that controls the installing of the registry value.RegLocatorSignature_NIdentifierThe table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key.RegLocatorRootN03The predefined root key for the registry value, one of rrkEnum.RegLocatorKeyNRegPathThe key for the registry value.RegLocatorNameYFormattedThe registry value name.RegLocatorTypeY018An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation.RemoveFileFileKeyNIdentifierPrimary key used to identify a particular file entryRemoveFileComponent_NComponent1IdentifierForeign key referencing Component that controls the file to be removed.RemoveFileFileNameYWildCardFilenameName of the file to be removed.RemoveFileDirPropertyNIdentifierName of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed.RemoveFileInstallModeN1;2;3Installation option, one of iimEnum.SignatureSignatureNIdentifierThe table key. The Signature represents a unique file signature.SignatureFileNameNTextThe name of the file. This may contain a "short name|long name" pair.SignatureMinVersionYTextThe minimum version of the file.SignatureMaxVersionYTextThe maximum version of the file.SignatureMinSizeY02147483647The minimum size of the file.SignatureMaxSizeY02147483647The maximum size of the file. SignatureMinDateY02147483647The minimum creation date of the file.SignatureMaxDateY02147483647The maximum creation date of the file.SignatureLanguagesYLanguageThe languages supported by the file.
PRIVATEASSEMBIESINSTALLDIRil0z7i6l|PrivateAssembliessubcategorycategorySpring.NETcategoryProjectTemplatesCSharpProjectTemplatesTemplatesoyou3u9k|ProjectTemplatesTemplatesVS7w5h0eqw|TemplatesVSPersonalFolderyprgpbxy|Visual Studio 2008PersonalFolderINSTALLDIR.INSTALLDIRTARGETDIR.TARGETDIRSourceDir
Manufacturerhttp://www.CodePlex.com/SolutionFactoryProductCode{017DFA74-DDFA-40D5-AF77-5961AD971C73}ProductLanguage1033ProductNameADO.NET Class LibraryProductVersion1.0.0.0UpgradeCode{5E4A2556-B633-4BB4-9E6B-11984242096F}ARPPRODUCTICONProduct.icoARPHELPLINKhttp://www.codeplex.com/SolutionFactory
reg944D5CA0CC9AF50C7F582C156D88417D2SOFTWARE\SolutionFactory\WizardInstallKeyWizardComponenetreg3C3AF86224CD8C733E849F4FA634AD551SOFTWARE\SolutionFactory\ADO.NET Class LibraryInstallKeyAddinComponent
112522Installation Database3ADO.NET Class Library4http://www.CodePlex.com/SolutionFactory5Installer6This installer database contains the logic and data required to install ADO.NET Class Library.7Intel;10339{365FCB83-D9A9-43F0-8928-23F21CDF1F03}14200152192122009/12/16 10:23:55132009/12/16 10:23:5518Windows Installer XML (3.0.4805.0)
_SummaryInformationPropertyIdN_SummaryInformationValueN_ValidationTableNIdentifierName of table_ValidationColumnNIdentifierName of column_ValidationNullableNY;NWhether the column is nullable_ValidationMinValueY-21474836472147483647Minimum value allowed_ValidationMaxValueY-21474836472147483647Maximum value allowed_ValidationKeyTableYIdentifierFor foreign key, Name of table to which data must link_ValidationKeyColumnY132Column to which foreign key connects_ValidationCategoryYText;Formatted;Template;Condition;Guid;Path;Version;Language;Identifier;Binary;UpperCase;LowerCase;Filename;Paths;AnyPath;WildCardFilename;RegPath;KeyFormatted;CustomSource;Property;Cabinet;Shortcut;URLString category_ValidationSetYTextSet of values that are permitted_ValidationDescriptionYTextDescription of columnAdminExecuteSequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.AdminExecuteSequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.AdminExecuteSequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.AdminUISequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.AdminUISequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.AdminUISequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.AdvtExecuteSequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.AdvtExecuteSequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.AdvtExecuteSequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.AppSearchPropertyNIdentifierThe property associated with a SignatureAppSearchSignature_NSignature;RegLocator;IniLocator;DrLocator;CompLocator1IdentifierThe Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables.ComponentComponentNIdentifierPrimary key used to identify a particular component record.ComponentComponentIdYGuidA string GUID unique to this component, version, and language.ComponentDirectory_NDirectory1IdentifierRequired key of a Directory table record. This is actually a property name whose value contains the actual path, set either by the AppSearch action or with the default setting obtained from the Directory table.ComponentAttributesNRemote execution option, one of irsEnumComponentConditionYConditionA conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component.ComponentKeyPathYFile;Registry;ODBCDataSource1IdentifierEither the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it.DirectoryDirectoryNIdentifierUnique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory.DirectoryDirectory_ParentYDirectory1IdentifierReference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree.DirectoryDefaultDirNDefaultDirThe default sub-path under parent's path.FeatureFeatureNIdentifierPrimary key used to identify a particular feature record.FeatureFeature_ParentYFeature1IdentifierOptional key of a parent record in the same table. If the parent is not selected, then the record will not be installed. Null indicates a root item.FeatureTitleYTextShort text identifying a visible feature item.FeatureDescriptionYTextLonger descriptive text describing a visible feature item.FeatureDisplayY032767Numeric sort order, used to force a specific display ordering.FeatureLevelN032767The install level at which record will be initially selected. An install level of 0 will disable an item and prevent its display.FeatureDirectory_YDirectory1UpperCaseThe name of the Directory that can be configured by the UI. A non-null value will enable the browse button.FeatureAttributesN0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54Feature attributesFeatureComponentsFeature_NFeature1IdentifierForeign key into Feature table.FeatureComponentsComponent_NComponent1IdentifierForeign key into Component table.FileFileNIdentifierPrimary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored.FileComponent_NComponent1IdentifierForeign key referencing Component that controls the file.FileFileNameNFilenameFile name used for installation, may be localized. This may contain a "short name|long name" pair.FileFileSizeN02147483647Size of file in bytes (long integer).FileVersionYFile1VersionVersion string for versioned files; Blank for unversioned files.FileLanguageYLanguageList of decimal language Ids, comma-separated if more than one.FileAttributesY032767Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses)FileSequenceN12147483647Sequence with respect to the media images; order must track cabinet order.IconNameNIdentifierPrimary key. Name of the icon file.IconDataNBinaryBinary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format.InstallExecuteSequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.InstallExecuteSequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.InstallExecuteSequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.InstallUISequenceActionNIdentifierName of action to invoke, either in the engine or the handler DLL.InstallUISequenceConditionYConditionOptional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData.InstallUISequenceSequenceY-432767Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action.MediaDiskIdN132767Primary key, integer to determine sort order for table.MediaLastSequenceN02147483647File sequence number for the last file for this media.MediaDiskPromptYTextDisk name: the visible text actually printed on the disk. This will be used to prompt the user when this disk needs to be inserted.MediaCabinetYCabinetIf some or all of the files stored on the media are compressed in a cabinet, the name of that cabinet.MediaVolumeLabelYTextThe label attributed to the volume.MediaSourceYPropertyThe property defining the location of the cabinet file.MsiFileHashFile_NFile1IdentifierPrimary key, foreign key into File table referencing file with this hashMsiFileHashOptionsN032767Various options and attributes for this hash.MsiFileHashHashPart1NSize of file in bytes (long integer).MsiFileHashHashPart2NSize of file in bytes (long integer).MsiFileHashHashPart3NSize of file in bytes (long integer).MsiFileHashHashPart4NSize of file in bytes (long integer).PropertyPropertyNIdentifierName of property, uppercase if settable by launcher or loader.PropertyValueNTextString value for property. Never null or empty.RegistryRegistryNIdentifierPrimary key, non-localized token.RegistryRootN-13The predefined root key for the registry value, one of rrkEnum.RegistryKeyNRegPathThe key for the registry value.RegistryNameYFormattedThe registry value name.RegistryValueYFormattedThe registry value.RegistryComponent_NComponent1IdentifierForeign key into the Component table referencing component that controls the installing of the registry value.RegLocatorSignature_NIdentifierThe table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key.RegLocatorRootN03The predefined root key for the registry value, one of rrkEnum.RegLocatorKeyNRegPathThe key for the registry value.RegLocatorNameYFormattedThe registry value name.RegLocatorTypeY018An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation.RemoveFileFileKeyNIdentifierPrimary key used to identify a particular file entryRemoveFileComponent_NComponent1IdentifierForeign key referencing Component that controls the file to be removed.RemoveFileFileNameYWildCardFilenameName of the file to be removed.RemoveFileDirPropertyNIdentifierName of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed.RemoveFileInstallModeN1;2;3Installation option, one of iimEnum.SignatureSignatureNIdentifierThe table key. The Signature represents a unique file signature.SignatureFileNameNTextThe name of the file. This may contain a "short name|long name" pair.SignatureMinVersionYTextThe minimum version of the file.SignatureMaxVersionYTextThe maximum version of the file.SignatureMinSizeY02147483647The minimum size of the file.SignatureMaxSizeY02147483647The maximum size of the file. SignatureMinDateY02147483647The minimum creation date of the file.SignatureMaxDateY02147483647The maximum creation date of the file.SignatureLanguagesYLanguageThe languages supported by the file.
PRIVATEASSEMBIESINSTALLDIRil0z7i6l|PrivateAssembliessubcategorycategorySpring.NETcategoryProjectTemplatesCSharpProjectTemplatesTemplatesoyou3u9k|ProjectTemplatesTemplatesVS7w5h0eqw|TemplatesVSPersonalFolderyprgpbxy|Visual Studio 2008PersonalFolderINSTALLDIR.INSTALLDIRTARGETDIR.TARGETDIRSourceDir
Manufacturerhttp://www.CodePlex.com/SolutionFactoryProductCode{FA5FDFE4-4964-4B80-80C2-53DEB527F765}ProductLanguage1033ProductNameADO.NET Class LibraryProductVersion1.0.0.0UpgradeCode{C82FC45D-8920-49F1-AE27-12CA07EAB982}ARPPRODUCTICONProduct.icoARPHELPLINKhttp://www.codeplex.com/SolutionFactory
reg944D5CA0CC9AF50C7F582C156D88417D2SOFTWARE\SolutionFactory\WizardInstallKeyWizardComponenetreg3C3AF86224CD8C733E849F4FA634AD551SOFTWARE\SolutionFactory\ADO.NET Class LibraryInstallKeyAddinComponent