发布我的Web应用程序项目后,世界上最简单的任务(见下文)没有被执行.知道为什么吗?
<Target Name="AfterPublish">
<Copy SourceFiles="C:\A.txt" DestinationFiles="C:\B.txt" />
</Target>
Run Code Online (Sandbox Code Playgroud) 我有一个ASP.NET网络应用程序,当我进行更改或修复错误时,我发布到我们的网站.我们希望自动将项目文件的备份保存到我们的服务器(与SVN签入分开),因此我编写了一个批处理文件,将整个项目从本地驱动器复制到服务器.批处理文件在独立运行时正常工作,因此不是问题.如果这是一个问题,批处理文件不在项目的路径中.
然后我将这些行添加到结束</project>标记正上方的.csproj文件中:
<Target Name="AfterPublish" >
<Exec Command="C:\deg\bat\backupRMA.cmd" />
</Target>
Run Code Online (Sandbox Code Playgroud)
这遵循MSDN中用于覆盖目标的指令.
我也尝试过这个SO问题中概述的方法.看起来像这样:
<Target Name="BackUpRMAToIDrive" AfterTargets="MSDeployPublish" >
<Exec Command="C:\deg\bat\backupRMA.cmd" />
</Target>
Run Code Online (Sandbox Code Playgroud)
这也行不通.
为了完整性,这是批处理文件,它非常简单,但如果有人感兴趣,我可以解释这些开关:
xcopy C:\deg\ASP.NET\OnlineRMA_SinglePage\*.* /cherkyDi I:\common\AppDevBranch\Service\rma
Run Code Online (Sandbox Code Playgroud)
我使用Build> Publish RMA在VS2010中发布,效果很好.这只是备份脚本永远不会运行.唯一的共性是脚本本身.我见过其他使用源dir到目标目录的副本的例子,但我想我明白你可以通过Exec命令调用外部脚本吗? 这是我为该方法找到的SO问题的例子.
我确定我错过了一些显而易见的东西,但是我第二天就搞好了一些看似很直接的东西,所以我错过了什么?
我的.net Web应用程序项目还包括一些非托管dll作为附加文件。这些子文件夹中有几个层次。
当我发布该项目时,我需要将这些文件bin与所有其他二进制文件一起复制到该文件夹中。
无论我尝试什么设置,我都能得到的最好结果是将它们发布到它们现有的文件夹结构中,而这并不是我需要的位置。
我创建了一个PostBuild事件来复制文件,并且在本地构建时有效,但在发布到服务器时则无效。我无法使PostPublish事件以相同的方式工作。
还有另一种方法可以做到这一点吗?
请注意,这与上一个问题类似但不相同: 从引用的项目发布非托管DLL