我有一个ASP.NET Web应用程序,当我进行更改或修复错误时,会将其发布到我们的网站上。我们希望自动将项目文件备份保存到我们的服务器(与SVN签入分开),因此我编写了一个批处理文件,将整个项目从本地驱动器复制到服务器。批处理文件在单独运行时能够正常工作,因此这不是问题所在。如果这是一个问题,批处理文件不在项目路径中。
然后,我在我的.csproj文件中添加了以下行,就在关闭的</project>
标记之前:
<Target Name="AfterPublish" >
<Exec Command="C:\deg\bat\backupRMA.cmd" />
</Target>
这遵循了MSDN中关于重写目标的说明。
我还尝试了此Stack Overflow问题中提到的方法。其如下所示:
<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 问题示例。
我确定我错过了显而易见的东西,但我已经浪费了第二天时间纠结于一个看起来相当简单的问题,那我错过了什么?