diff --git a/WebsitePanel/Lib/References/Microsoft/Microsoft.Web.PlatformInstaller.WebDeployShim.dll b/WebsitePanel/Lib/References/Microsoft/Microsoft.Web.PlatformInstaller.WebDeployShim.dll deleted file mode 100644 index b7b81017..00000000 Binary files a/WebsitePanel/Lib/References/Microsoft/Microsoft.Web.PlatformInstaller.WebDeployShim.dll and /dev/null differ diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebAppGallery/DeploymentParameter.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebAppGallery/DeploymentParameter.cs index 4fa34ef8..2e0ddf38 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebAppGallery/DeploymentParameter.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/WebAppGallery/DeploymentParameter.cs @@ -87,7 +87,7 @@ namespace WebsitePanel.Providers.WebAppGallery //SiteUserPassword = 549755813888, - ALLKNOWN = + AllKnown = AppHostConfig | AppPoolConfig | Boolean | @@ -155,5 +155,21 @@ namespace WebsitePanel.Providers.WebAppGallery return String.Format("{0}=\"{1}\", Tags={2}", Name, Value, WellKnownTags.ToString()); } #endif + + public void SetWellKnownTagsFromRawString(string rawTags) + { + string[] tags = rawTags.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries); + DeploymentParameterWellKnownTag wellKnownTags = DeploymentParameterWellKnownTag.None; + foreach (string tag in tags) + { + try + { + wellKnownTags |= (DeploymentParameterWellKnownTag)Enum.Parse(typeof(DeploymentParameterWellKnownTag), tag, true); + } + catch(Exception){} + } + + WellKnownTags = wellKnownTags & DeploymentParameterWellKnownTag.AllKnown; + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WPIWebApplicationGallery/WPIApplicationGallery.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WPIWebApplicationGallery/WPIApplicationGallery.cs index 1006c683..2b2ba11d 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WPIWebApplicationGallery/WPIApplicationGallery.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WPIWebApplicationGallery/WPIApplicationGallery.cs @@ -44,6 +44,7 @@ using System.Web; using System.Diagnostics; using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations; using DeploymentParameter = WebsitePanel.Providers.WebAppGallery.DeploymentParameter; +using DeploymentParameterWPI = Microsoft.Web.PlatformInstaller.DeploymentParameter; namespace WebsitePanel.Providers.Web.WPIWebApplicationGallery { @@ -268,10 +269,10 @@ namespace WebsitePanel.Providers.Web.WPIWebApplicationGallery Product product = wpi.GetProduct(id); List deploymentParameters = new List(); - IList appDecalredParameters = wpi.GetAppDecalredParameters(id); - foreach (DeclaredParameter declaredParameter in appDecalredParameters) + IList appDeploymentWPIParameters = wpi.GetAppDecalredParameters(id); + foreach (DeploymentParameterWPI deploymentParameter in appDeploymentWPIParameters) { - deploymentParameters.Add(MakeDeploymentParameterFromDecalredParameter(declaredParameter)); + deploymentParameters.Add(MakeDeploymentParameterFromDecalredParameter(deploymentParameter)); } return deploymentParameters; @@ -398,28 +399,41 @@ namespace WebsitePanel.Providers.Web.WPIWebApplicationGallery }; } - protected static DeploymentParameter MakeDeploymentParameterFromDecalredParameter(DeclaredParameter d) + protected static DeploymentParameter MakeDeploymentParameterFromDecalredParameter(DeploymentParameterWPI d) { - - DeploymentParameter r = new DeploymentParameter(); r.Name = d.Name; r.FriendlyName = d.FriendlyName; r.DefaultValue = d.DefaultValue; r.Description = d.Description; -#pragma warning disable 612,618 - r.WellKnownTags = DeploymentParameterWellKnownTag.ALLKNOWN & (DeploymentParameterWellKnownTag) d.Tags; - if (null != d.Validation) + r.SetWellKnownTagsFromRawString(d.RawTags); + if (!string.IsNullOrEmpty(d.ValidationString)) { - r.ValidationKind = (DeploymentParameterValidationKind) d.Validation.Kind; - r.ValidationString = d.Validation.ValidationString; + // synchronized with Microsoft.Web.Deployment.DeploymentSyncParameterValidationKind + if (d.HasValidation((int)DeploymentParameterValidationKind.AllowEmpty)) + { + r.ValidationKind |= DeploymentParameterValidationKind.AllowEmpty; + } + if (d.HasValidation((int)DeploymentParameterValidationKind.RegularExpression)) + { + r.ValidationKind |= DeploymentParameterValidationKind.RegularExpression; + } + if (d.HasValidation((int)DeploymentParameterValidationKind.Enumeration)) + { + r.ValidationKind |= DeploymentParameterValidationKind.Enumeration; + } + if (d.HasValidation((int)DeploymentParameterValidationKind.Boolean)) + { + r.ValidationKind |= DeploymentParameterValidationKind.Boolean; + } + + r.ValidationString = d.ValidationString; } else { r.ValidationKind = DeploymentParameterValidationKind.None; } -#pragma warning restore 612,618 return r; } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WebsitePanel.Providers.Web.IIs60.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WebsitePanel.Providers.Web.IIs60.csproj index 227f56dc..3e06a8b4 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WebsitePanel.Providers.Web.IIs60.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Web.IIs60/WebsitePanel.Providers.Web.IIs60.csproj @@ -77,11 +77,6 @@ ..\..\Lib\References\Microsoft\Microsoft.Web.PlatformInstaller.dll True - - False - ..\..\Lib\References\Microsoft\Microsoft.Web.PlatformInstaller.WebDeployShim.dll - True - diff --git a/WebsitePanel/Sources/WebsitePanel.Server/Code/WPIHelper.cs b/WebsitePanel/Sources/WebsitePanel.Server/Code/WPIHelper.cs index 61f66d31..9dfd94f5 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/Code/WPIHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server/Code/WPIHelper.cs @@ -38,6 +38,7 @@ using System.Threading; using Microsoft.Web.Deployment; using Microsoft.Web.PlatformInstaller; using Installer = Microsoft.Web.PlatformInstaller.Installer; +using DeploymentParameterWPI = Microsoft.Web.PlatformInstaller.DeploymentParameter; namespace WebsitePanel.Server.Code { @@ -453,11 +454,11 @@ namespace WebsitePanel.Server.Code return products; } - public IList GetAppDecalredParameters(string productId) + public IList GetAppDecalredParameters(string productId) { Product app = _productManager.GetProduct(productId); Installer appInstaller = app.GetInstaller(GetLanguage(null)); - return appInstaller.MSDeployPackage.DeclaredParameters; + return appInstaller.MSDeployPackage.DeploymentParameters; } public bool InstallApplication( @@ -501,7 +502,7 @@ namespace WebsitePanel.Server.Code DeploymentWellKnownTag dbTag = (DeploymentWellKnownTag)GetDbTag(updatedValues); // remove parameters with alien db tags - foreach (DeclaredParameter parameter in appInstaller.MSDeployPackage.DeclaredParameters) + foreach (DeploymentParameterWPI parameter in appInstaller.MSDeployPackage.DeploymentParameters) { if (IsAlienDbTaggedParameter(dbTag, parameter)) { @@ -726,13 +727,16 @@ namespace WebsitePanel.Server.Code return DeploymentWellKnownTag.None; } - private static bool IsAlienDbTaggedParameter(DeploymentWellKnownTag dbTag, DeclaredParameter parameter) + private static bool IsAlienDbTaggedParameter(DeploymentWellKnownTag dbTag, DeploymentParameterWPI parameter) { + return parameter.HasTags((long)databaseEngineTags) && !parameter.HasTags((long)dbTag); +/* #pragma warning disable 612,618 return (parameter.Tags & databaseEngineTags) != DeploymentWellKnownTag.None && (parameter.Tags & dbTag) == DeploymentWellKnownTag.None; #pragma warning restore 612,618 +*/ } private static void RemoveUnusedProviders(MSDeployPackage msDeployPackage, DeploymentWellKnownTag dbTag) diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs index 9c8fa07b..860b9e77 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebApplicationGalleryParams.ascx.cs @@ -155,7 +155,7 @@ namespace WebsitePanel.Portal } // MySQL Server - else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.MySql) != null) + if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.MySql) != null) { // load package context PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); @@ -170,15 +170,15 @@ namespace WebsitePanel.Portal } // SQLite - else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.SqLite) != null) + if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.SqLite) != null) AddDatabaseEngine(DeploymentParameterWellKnownTag.SqLite, "", GetLocalizedString("DatabaseEngine.SQLite")); // Flat File - else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.FlatFile) != null) + if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.FlatFile) != null) AddDatabaseEngine(DeploymentParameterWellKnownTag.FlatFile, "", GetLocalizedString("DatabaseEngine.FlatFile")); // VistaFB - else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.VistaDB) != null) + if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.VistaDB) != null) AddDatabaseEngine(DeploymentParameterWellKnownTag.VistaDB, "", GetLocalizedString("DatabaseEngine.VistaDB"));