Я обычно катаюсь самостоятельно, используя ruby + rake.Следующее заботится о большинстве из того, что вы перечислили.
require 'rake/clean'
SELF_PATH = File.dirname(__FILE__)
PATH_TO_ROOT = SELF_PATH
PATH_TO_WEB = "C:\\Dev\\"
PATH_TO_MSBUILD = "C:\\Windows\\Microsoft.NET\\Framework\\v3.5\\msbuild.exe"
CLEAN.exclude("**/core")
CLEAN.include("*.cache", "*.xml", "*.suo", "**/obj", "**/bin", "../Deploy")
task :build do
sh "#{PATH_TO_MSBUILD} /v:q #{PATH_TO_ROOT}/HUD.sln"
end
namespace "deploy" do
desc "Preps the project for deployment"
task :package, :project_name do |t, args|
begin
Rake::Task["clean"].invoke
Rake::Task["build"].invoke
Dir.mkdir("../Deploy")
sh "xcopy .\\#{args.project_name} ..\\Deploy\\#{args.project_name}\\ /S /C /F /Y /exclude:e.txt"
begin
sh "xcopy .\\#{args.project_name}\\Web.config.prod ..\\Deploy\\#{args.project_name}\\Web.config /S /C /F /Y"
rescue
end
rescue Exception=>e
puts e
end
end
end