Skip to content

Instantly share code, notes, and snippets.

@tanaka-takayoshi
Created February 6, 2014 10:07
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/8841518 to your computer and use it in GitHub Desktop.
Save tanaka-takayoshi/8841518 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();
//デプロイ先の設定
//-dest:auto,computerName
//="http://buildinsider2.cloudapp.net/MSDeployAgentService"
//,userName="nazo",password="pAssw0rd",includeAcls="False"
var destBaseOptions = new DeploymentBaseOptions()
{
ComputerName
= "http://buildinsider2.cloudapp.net/MSDeployAgentService",
UserName = "nazo",
Password = "pAssw0rd",
IncludeAcls = false
};
//-disableLink:AppPoolExtension
//-disableLink:ContentExtension
//-disableLink:CertificateExtension
//の3つを設定
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;
}
//Packageしたzipファイルを指定して作成
//-setParamFile:"C:\tmp\Package\MvcApplication4.zip"
var deploymentObject = DeploymentManager.CreateObject(
DeploymentWellKnownProvider.Package,
@"C:\tmp\Package\MvcApplication4.zip",
sourceBaseOptions);
//setParamFile経由の設定の代わりにDeploy先のWebサイトを直接設定する
deploymentObject
.SyncParameters
.Single(p => p.Name == "IIS Web Application Name")
.Value = "Deploy";
var syncOptions = new DeploymentSyncOptions();
//-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