msbuild - 在目标上为 MSBUILD 找到正确的目录 removedir

标签 msbuild msdeploy webdeploy

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

你好,

我试图在完成构建后远程清除我网站上 .pubxml 文件中的“imagecache”文件夹。问题是,当我通过 Web 部署运行发布到远程服务器时这样做时,我收到以下错误:

目录“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"/>

感谢您的宝贵时间。

最佳答案

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

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

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

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

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

关于msbuild - 在目标上为 MSBUILD 找到正确的目录 removedir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35484669/

相关文章:

Azure:如何从 Visual Studio 项目部署子目录?

visual-studio-2015 - 网络部署 - IIS 管理器用户 IISWMSVC_AUTHORIZATION_SERVER_NOT_ALLOWED

msbuild - MSBuild 内置变量列表

msbuild - Buildserver找不到 Entity Framework Sql提供程序

tfsbuild - MSDeploy 批处理文件不再处理引号

iis-7 - MSDeploy 仅将配置从 IIS 6 迁移到 7

azure - Visual Studio Team Services 在 Azure 上部署 - 错误 default-publish.ps1 在 azure vm 上不存在

c# - 在编译时检测目标框架版本

c# - 如何以编程方式检查解决方案中是否正确配置了引用

iis - MSDeploy - 将文件复制到 iis 应用程序的子文件夹的同步命令