MSDeploy API를 사용하여 C# 코드를 통해 원격으로 삭제 명령을 실행하려고합니다.MSDeploy API - 코드를 통해 원격 파일 삭제
나는 다음과 같은 명령을 달성하고자 :
msdeploy.exe -verb:delete -dest:contentPath="/folderName/filename.txt"
대신 관리되지 않는 외부 실행 파일을 실행을 통해
, 내가 MSDeploy 닷넷 API를 사용하여이 작업을 실행합니다.MSDeploy API를 사용하여 C# 코드를 통해 원격으로 삭제 명령을 실행하려고합니다.MSDeploy API - 코드를 통해 원격 파일 삭제
나는 다음과 같은 명령을 달성하고자 :
msdeploy.exe -verb:delete -dest:contentPath="/folderName/filename.txt"
대신 관리되지 않는 외부 실행 파일을 실행을 통해
, 내가 MSDeploy 닷넷 API를 사용하여이 작업을 실행합니다.나는 리처드 Szalay의에 대한 답 덕분에 찾았습니다 선도적 인이 권한을 갖는 기회 그래서 VS 출판에 의해 사용되는 일반적인 공급자로 내가 ContentPath
제공자를 사용했습니다 것은 높은 :
var deployBaseOptions = new DeploymentBaseOptions
{
ComputerName = "https://mywebserver.com:8172/msdeploy.axd?sitename=yourIISWebsiteName",
UserName = "username",
Password = "password",
UseDelegation = true,
AuthenticationType = "Basic"
};
var syncOptions = new DeploymentSyncOptions
{
DeleteDestination = true
};
var deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.ContentPath,
"yourIISWebsiteName" + "/fileToDelete.txt",
destBaseOptions);
var results = deploymentObject.SyncTo(deployBaseOptions, syncOptions);
이상한 것은이 results
항상이 경우에도 3 개 개의 파일이 삭제 보여주고 있다는 것입니다 ...에 하나 ...?!
당신은 절대 파일 경로 (아닌 웹 사이트에있는 파일)을 삭제하려는 가정하면, 다음과 같이 뭔가를 찾고 :
DeploymentObject destObject = DeploymentManager.CreateObject(
DeploymentWellKnownProvider.FilePath, "/foldername/filename.txt");
DeploymentObject sourceObject = DeploymentManager.CreateObject("auto", "");
DeploymentBaseOptions baseOptions = new DeploymentBaseOptions();
DeploymentSyncOptions syncOptions = new DeploymentSyncOptions
{
DeleteDestination = true;
};
DeploymentChangeSummary results = sourceObject.SyncTo(
destObject, baseOptions, syncOptions);
// results.ObjectsDeleted == 1
이러한 오버로드는 존재하지 않습니다. SyncTo는 DeploymentObject를 사용하지 않습니다. – Doug