在MSBUILD的目标上找到正确的目录removeir

时间:2016-02-18 14:49:50

标签: msbuild msdeploy webdeploy

在MSBUILD的目标上找到正确的目录

您好,

我正在尝试在构建之后在我的.pubxml文件中远程清除我的网站上的“imagecache”文件夹。问题是,当我通过Web Deploy运行发布到远程服务器时,我收到以下错误:

目录" App_Data / images / imagecache / w-400"不存在。跳过。

这是我目前的构建脚本:

  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish>mysite.com</SiteUrlToLaunchAfterPublish>
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <MSDeployServiceURL>NotRealServer</MSDeployServiceURL>
    <DeployIisAppPath>mysite.com</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <UserName>UserNameHere</UserName>
    <_SavePWD>True</_SavePWD>
</PropertyGroup>

<Target Name="AfterBuild">
   <RemoveDir Directories="App_Data/images/imagecache/w-400"/>
</Target>

我也试过以下无济于事。我不知道如何将MSBuild提供给我需要删除的远程Web服务器上的目录。

<RemoveDir Directories="$( DeployIisAppPath)/App_Data/images/imagecache/w-400"/>

<RemoveDir Directories="/App_Data/images/imagecache/w-400"/>

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

这取决于您的网络发布的配置方式。

如果要发布到文件共享,请使用UNC路径。如果您要发布到FTP,那么MSBuild将无法访问该文件夹。

以下是UNC共享上的RemoveDir任务示例。

<RemoveDir Directories="\\Server\Share\folder" Condition="Exists('\\Server\Share\folder')" ContinueOnError="WarnAndContinue"/>

我上面输入的 Condition ContinueOnError 属性不是必需的,但它们是个好主意。配置此任务的方式如果文件夹不存在且将其存在并且出现错误,则将跳过RemoveDir,任务将发出警告并且构建过程将继续。