Skip to content

Instantly share code, notes, and snippets.

@tanaka-takayoshi
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tanaka-takayoshi/9308765 to your computer and use it in GitHub Desktop.
Save tanaka-takayoshi/9308765 to your computer and use it in GitHub Desktop.
using System;
using System.Linq;
using Microsoft.Web.Deployment;
namespace MSDeploySample
{
class Program
{
static void Main(string[] args)
{
var sourceBaseOptions = new DeploymentBaseOptions();
//configuration for deploy target Web Server
// User must be existed in deploy target server and must have Administrative priviledge.
//-dest:auto,computerName
//="http://buildinsider2.cloudapp.net/MSDeployAgentService"
//,userName="adminuser",password="pAssw0rd",includeAcls="False"
var destBaseOptions = new DeploymentBaseOptions()
{
ComputerName
= "http://buildinsider2.cloudapp.net/MSDeployAgentService",
UserName = "adminuser",
Password = "pAssw0rd",
IncludeAcls = false
};
//-disableLink:AppPoolExtension
//-disableLink:ContentExtension
//-disableLink:CertificateExtension
foreach (var extension in sourceBaseOptions.LinkExtensions
.Where(ext => ext.Name == "AppPoolExtension"
|| ext.Name == "ContentExtension"
|| ext.Name == "CertificateExtension"))
{
extension.Enabled = false;
}
foreach (var extension in destBaseOptions.LinkExtensions
.Where(ext => ext.Name == "AppPoolExtension"
|| ext.Name == "ContentExtension"
|| ext.Name == "CertificateExtension"))
{
extension.Enabled = false;
}
//specify packged zip file
//-setParamFile:"C:\tmp\Package\MvcApplication4.zip"
var deploymentObject = DeploymentManager.CreateObject(
DeploymentWellKnownProvider.Package,
@"C:\tmp\Package\MvcApplication4.zip",
sourceBaseOptions);
//configure deploy target Web site name instead of using -SetParams
deploymentObject
.SyncParameters
.Single(p => p.Name == "IIS Web Application Name")
.Value = "Deploy";
var syncOptions = new DeploymentSyncOptions();
//execute "-verb:sync"
var changes =
deploymentObject.SyncTo(DeploymentWellKnownProvider.Auto,
"", destBaseOptions, syncOptions);
Console.WriteLine("BytesCopied: "
+ changes.BytesCopied.ToString());
Console.WriteLine("Added: "
+ changes.ObjectsAdded.ToString());
Console.WriteLine("Updated: "
+ changes.ObjectsUpdated.ToString());
Console.WriteLine("Deleted: "
+ changes.ObjectsDeleted.ToString());
Console.WriteLine("Errors: "
+ changes.Errors.ToString());
Console.WriteLine("Warnings: "
+ changes.Warnings.ToString());
Console.WriteLine("ParametersChanged: "
+ changes.ParameterChanges.ToString());
Console.WriteLine("TotalChanges: "
+ changes.TotalChanges.ToString());
Console.ReadKey();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment