如何在构建后自动执行重复性任务?

Mas*_*ase 4 c# asp.net msbuild web-deployment-project visual-studio-2005

我运行一个ASP.NET网站解决方案,其中包含一些其他项目.我已经知道MSBuild项目能够做到这一点,但这是最好的方法吗?它们易于创建吗?nAnt,CruiseControl.NET或任何其他解决方案更好吗?

当我构建站点(使用Web部署项目)时,我是否可以自动部分构建,以便它不会将某些文件夹从项目复制到Release文件夹中?例如,我有文件夹,包含本地搜索索引,图像和文件夹的其他内容部分,但在部署项目时我从不需要或上传它们.

我也期待这种类型的解决方案自动增加构建和版本号.

Chr*_*ris 8

以下是在.wdproj文件中编写此类任务脚本的Web部署项目的示例:

  <Target Name="AfterBuild">
    <!-- ============================ Script Compression============================ -->
    <MakeDir Directories="$(OutputPath)\compressed" />
    <Exec Command="java -jar c:\yuicompressor-2.2.5\build\yuicompressor-2.2.5.jar --charset UTF-8 styles.css -o compressed/styles.css" WorkingDirectory="$(OutputPath)" />
    <Exec Command="move /Y .\compressed\* .\" WorkingDirectory="$(OutputPath)" />
    <RemoveDir Directories="$(OutputPath)\sql" />
    <Exec Command="c:\7zip-4.4.2\7za.exe a $(ZipName).zip $(OutputPath)\*" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

这将允许您删除文件夹.

(我怀疑,如果你想没有对文件夹的副本在所有的解决方案文件是指定的地方,虽然我还没有使用的.)