private static void Deploy( string sourcePath, string destinationPath, string destinationAddress, string userName, string password, DeploymentWellKnownProvider srcProvider, DeploymentBaseOptions srcBaseOptions, DeploymentWellKnownProvider destProvider, DeploymentBaseOptions destBaseOptions, DeploymentSyncOptions destSyncOptions, Func <string, string> syncParamResolver, IEnumerable <DeploymentSkipDirective> skipDirectives = null, IEnumerable <string> removedParameters = null, TraceLevel tracelevel = TraceLevel.Info, WebDeploySyncDirection direction = (WebDeploySyncDirection.SourceIsLocal | WebDeploySyncDirection.DestinationIsRemote)) { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, e) => true; // prepare common source properties srcBaseOptions.Trace += DeployTraceEventHandler; srcBaseOptions.TraceLevel = tracelevel; if (direction.HasFlag(WebDeploySyncDirection.SourceIsRemote)) { srcBaseOptions.ComputerName = destinationAddress; srcBaseOptions.UserName = userName; srcBaseOptions.Password = password; srcBaseOptions.AuthenticationType = "basic"; } // prepare common destination properties destBaseOptions.Trace += DeployTraceEventHandler; destBaseOptions.TraceLevel = tracelevel; destBaseOptions.IncludeAcls = true; // We want to ignore errors to delete files because this is what WebMatrix does. This may result in a partial deployment destBaseOptions.AddDefaultProviderSetting(DeploymentWellKnownProvider.FilePath.ToString(), "ignoreErrors", "0x80070005;0x80070020;0x80070091"); destBaseOptions.AddDefaultProviderSetting(DeploymentWellKnownProvider.DirPath.ToString(), "ignoreErrors", "0x80070005;0x80070020;0x80070091"); if (direction.HasFlag(WebDeploySyncDirection.DestinationIsRemote)) { destBaseOptions.ComputerName = destinationAddress; destBaseOptions.UserName = userName; destBaseOptions.Password = password; destBaseOptions.AuthenticationType = "basic"; } if (skipDirectives != null) { foreach (var skipDirective in skipDirectives) { srcBaseOptions.SkipDirectives.Add(skipDirective); destBaseOptions.SkipDirectives.Add(skipDirective); } } ExecuteDeploy(sourcePath, destinationPath, srcProvider, srcBaseOptions, destProvider, destBaseOptions, destSyncOptions, syncParamResolver, removedParameters); }
private static void Deploy( string sourcePath, string destinationPath, string destinationAddress, string userName, string password, DeploymentWellKnownProvider srcProvider, DeploymentBaseOptions srcBaseOptions, DeploymentWellKnownProvider destProvider, DeploymentBaseOptions destBaseOptions, DeploymentSyncOptions destSyncOptions, Func<string, string> syncParamResolver, IEnumerable<DeploymentSkipDirective> skipDirectives = null, IEnumerable<string> removedParameters = null, TraceLevel tracelevel = TraceLevel.Info, WebDeploySyncDirection direction = (WebDeploySyncDirection.SourceIsLocal | WebDeploySyncDirection.DestinationIsRemote)) { ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, e) => true; // prepare common source properties srcBaseOptions.Trace += DeployTraceEventHandler; srcBaseOptions.TraceLevel = tracelevel; if (direction.HasFlag(WebDeploySyncDirection.SourceIsRemote)) { srcBaseOptions.ComputerName = destinationAddress; srcBaseOptions.UserName = userName; srcBaseOptions.Password = password; srcBaseOptions.AuthenticationType = "basic"; } // prepare common destination properties destBaseOptions.Trace += DeployTraceEventHandler; destBaseOptions.TraceLevel = tracelevel; destBaseOptions.IncludeAcls = true; // We want to ignore errors to delete files because this is what WebMatrix does. This may result in a partial deployment destBaseOptions.AddDefaultProviderSetting(DeploymentWellKnownProvider.FilePath.ToString(), "ignoreErrors", "0x80070005;0x80070020;0x80070091"); destBaseOptions.AddDefaultProviderSetting(DeploymentWellKnownProvider.DirPath.ToString(), "ignoreErrors", "0x80070005;0x80070020;0x80070091"); if (direction.HasFlag(WebDeploySyncDirection.DestinationIsRemote)) { destBaseOptions.ComputerName = destinationAddress; destBaseOptions.UserName = userName; destBaseOptions.Password = password; destBaseOptions.AuthenticationType = "basic"; } if (skipDirectives != null) { foreach (var skipDirective in skipDirectives) { srcBaseOptions.SkipDirectives.Add(skipDirective); destBaseOptions.SkipDirectives.Add(skipDirective); } } ExecuteDeploy(sourcePath, destinationPath, srcProvider, srcBaseOptions, destProvider, destBaseOptions, destSyncOptions, syncParamResolver, removedParameters); }