Created
February 6, 2014 10:07
-
-
Save tanaka-takayoshi/8841518 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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