2010-12-06 2 views
2

Добрый день!Простая автоматизация здания ASP.NET MVC 2 приложение

Я ищу решение для выполнения такой задачи из командной строки:

  • Compile ASP.NET MVC 2.0 приложений (1 asp.net MVC проекта и 2 класса проектов в 1 решение)
  • Выполните преобразование Web.config
  • Удалите некоторые файлы и папки из результата компиляции
  • Run BAT-файл, который добавить Svn номер версии с помощью svnversion
  • Выполнить внешний архиватор для сжатия релиза
  • Еще есть возможность отладки с помощью VS

Я использую Visual Web Developer 2010, мой проект уже Web.Release.config и Web.Debug.config.

Можно ли это сделать с помощью MSBuild?

Благодарим заранее!

ответ

1

Да, вы должны быть в состоянии использовать MSBuild делать большинство, если не все задачи. Ознакомьтесь с задачами сообщества MSBuild, они добавляют немного функциональности.

http://msbuildtasks.tigris.org/

НТН

+0

Похоже решение для меня, но насколько я понимаю, я не могу писать сценарий на уровне решения - только на уровне проекта, правильно? – artvolk 2010-12-07 08:20:38

+0

Не знаете, что вы подразумеваете под уровнем решения или уровнем проекта? Если вы имеете в виду, вы не можете использовать msbuild для всего решения, это неверно. Да, вы можете использовать для всего решения. – 2010-12-07 18:43:44

1

Я не верю, что MSBuild сам будет делать многое из вашего списка. Для этого вы можете создать кучу скриптов. Тем не менее, я рекомендую взглянуть на сервер непрерывной интеграции Hudson. Он уже может многое сделать в вашем списке. Это система с подключаемым модулем, поэтому, если подключаемый модуль не существует, вы можете использовать его самостоятельно. Кроме того, существует довольно активное сообщество, поэтому вы найдете много сообщений в блогах. Вот ссылка на сайт:

http://hudson-ci.org/

Я также сделал запись в блоге о начале работы с Хадсона и .net. Вы можете обнаружить, что полезно также:

http://blog.bobcravens.com/2010/03/getting-started-with-ci-using-hudson-for-your-net-projects/

Надеется, что это помогает.

Боб

+0

Спасибо за ответ, я бы очень хотел, чтобы использовать некоторые из CI решений (спасибо за статью, это здорово!), Но мне кажется излишним в такой ситуации ... – artvolk 2010-12-07 08:17:46

1

Я обычно ролл мой собственный, используя рубин + грабли. Ниже приведена основная информация о том, что вы указали.

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 
Смежные вопросы