我有一个 ASP.NET Web 应用程序,我在进行更改或修复错误时将其发布到我们的网站。我们想自动将项目文件的备份保存到我们的服务器(与 SVN 签入分开),所以我编写了一个批处理文件将整个项目从我的本地驱动器复制到服务器。单独运行时批处理文件可以正常工作,所以这不是问题。如果这是一个问题,批处理文件不在项目的路径中。
然后我将这些行添加到结束</project>
标记正上方的 .csproj 文件中:
<Target Name="AfterPublish" >
<Exec Command="C:\deg\bat\backupRMA.cmd" />
</Target>
这遵循MSDN 中关于覆盖目标的说明。
我也尝试过这个 SO question中概述的方法。看起来像这样:
<Target Name="BackUpRMAToIDrive" AfterTargets="MSDeployPublish" >
<Exec Command="C:\deg\bat\backupRMA.cmd" />
</Target>
那也行不通。
为了完整起见,这是批处理文件,它非常简单,但如果有人感兴趣,我可以解释一下开关:
xcopy C:\deg\ASP.NET\OnlineRMA_SinglePage\*.* /cherkyDi I:\common\AppDevBranch\Service\rma
我使用 Build > Publish RMA 在 VS2010 中发布,效果很好。只是备份脚本永远不会运行。唯一的共同点是脚本本身。我见过其他使用从源目录到目标目录的副本的示例,但我想我明白你可以通过 Exec 命令调用外部脚本? 这是我为该方法找到的示例 SO 问题。
我确定我遗漏了一些明显的东西,但是我已经进入第二天的事情了,看起来很简单,所以我遗漏了什么?