【问题标题】:MSDeploy API - Deleting a remote file through codeMSDeploy API - 通过代码删除远程文件
【发布时间】:2012-10-24 13:54:31
【问题描述】:

我希望通过 c# 代码使用 MSDeploy API 远程触发删除命令。

我想实现如下命令:

msdeploy.exe -verb:delete -dest:contentPath="/folderName/filename.txt"

我想使用 MSDeploy .Net API 来执行此操作,而不是通过运行非托管的外部可执行文件。

【问题讨论】:

    标签: msdeploy webdeploy


    【解决方案1】:

    假设您正在尝试删除绝对文件路径(而不是网站中的文件),您正在寻找这样的内容:

    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。
    【解决方案2】:

    感谢 Richard Szalay 的领导,我找到了答案,并且我使用了 ContentPath 提供程序,因为这是 VS Publishing 使用的常用提供程序,因此获得权限的机会很高:

    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 个文件,即使只有一个文件...?!

    【讨论】:

      猜你喜欢
      • 2011-11-03
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 2021-01-28
      相关资源
      最近更新 更多