在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"/>
感谢您的时间。
答案 0 :(得分:1)
这取决于您的网络发布的配置方式。
如果要发布到文件共享,请使用UNC路径。如果您要发布到FTP,那么MSBuild将无法访问该文件夹。
以下是UNC共享上的RemoveDir任务示例。
<RemoveDir Directories="\\Server\Share\folder" Condition="Exists('\\Server\Share\folder')" ContinueOnError="WarnAndContinue"/>
我上面输入的 Condition 和 ContinueOnError 属性不是必需的,但它们是个好主意。配置此任务的方式如果文件夹不存在且将其存在并且出现错误,则将跳过RemoveDir,任务将发出警告并且构建过程将继续。