WebDeploy到IIS - 如何删除目标服务器上的文件夹?

时间:2017-08-03 10:35:56

标签: visual-studio msbuild visual-studio-2017 msdeploy webdeploy

在我想要的目标服务器上删除App_Data文件夹下的文件夹(及其所有文件)。 它应该在我将新文件推送到目标服务器之前发生。

我该怎么做?

当前配置

<PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>QA</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish>http://qa.mysite.test:80/</SiteUrlToLaunchAfterPublish>
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <MSDeployServiceURL>https://my-server:8172/msdeploy.axd</MSDeployServiceURL>
    <DeployIisAppPath>qa.mysite.test</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
  </PropertyGroup>

1 个答案:

答案 0 :(得分:2)

  

WebDeploy到IIS - 如何删除目标服务器上的文件夹?

您可以查看MSBuild中的删除任务

http://msdn2.microsoft.com/en-us/library/7wd15byf.aspx

您可能需要创建一个PropertyGroup,其中包含要删除的文件的文件夹,然后将delate任务添加到AfterBuild目标中:

    <PropertyGroup>  
      <AppDataFolder>AppdataFoler</AppDataFolder>  
    </PropertyGroup>

要完成此操作,请卸载项目,编辑项目文件.csproj。然后在项目的最后,就在结束标记之前,放在脚本下面:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>  
    <AppdataFolder>\\YourServer\Appdata</AppdataFolder>  
  </PropertyGroup> 


  <Target Name="AfterBuild">  
    <Delete Files="$(AppdataFolder)\YourDeleteFile" />  
  </Target> 

</Project>