2011-01-22 2 views

ответ

3

В программе Psake у вас есть функция exec для запуска программ. С помощью этой задачи/функции вы можете создавать, компилировать и публиковать веб-приложение

Вы можете выполнить asp_compiler построить вам проект/решение

Exec { aspnet_compiler.exe } 

Обратитесь к сайту MSDN для точного синтаксиса и параметров для aspnet_compiler .exe

Я нашел пример, которые показывают, как это сделать:

http://blog.developwithpassion.com/2008/10/30/interested-in-trading-in-your-nant-builds-a-teaser/

+0

У aspnet_compiler проблемы с сборкой папки, а не с файлом проекта. Но это не проблема, а причина для очистки проекта – AlfeG

4

Я использую сборку в формате .net 4.0 и инструменты для веб-развертывания в IIS. Вот фрагмент кода, чтобы использовать его с PSake:

https://gist.github.com/579086

5

Согласно this post, вот еще один способ публикации вашего веб-приложения. Я использовал этот метод для публикации веб-службы .asmx. Уловкой является _CopyWebApplication msbuild target, которая делает распространяемые файлы для вашего веб-приложения.

# ...setup properties 

task PublishWebService -depends Compile { 
    $output_dir = "$build_dir\$configuration\Web" 
    $output_bin_dir = "$output_dir\bin\" 
    msbuild $webservice_project_file /t:ResolveReferences /t:_CopyWebApplication /p:Configuration=$configuration /p:WebProjectOutputDir="..\$output_dir" /p:OutDir="..\$output_bin_dir" 
    if (-not (Test-Path $web_service_inetpub_dir)) { 
      mkdir $web_service_inetpub_dir 
     } 
    copy $output_dir\* -destination $web_service_inetpub_dir -recurse -force 
    "Publish OK!" 
} 

Смотрите также this post какую-то информацию о настройке и срывая IIS сайтов и приложений пулы из вашего psake сценария.

UPDATE: Я нашел следующие команды, чтобы работать немного лучше. Тот, который я опубликовал выше, неправильно применяет преобразования web.config.

# ... 
msbuild /t:Rebuild /p:OutDir=..\$output_dir\ /p:Configuration=$build_configuration /p:UseWPP_CopyWebApplication=True /p:PipelineDependsOnBuild=False /p:TrackFileAccess=false "$web_app_project_file" 
# ... 
copy $output_dir\_PublishedWebsites\$web_app_project_name\* -destination $inetpub_dir -recurse -force 
Смежные вопросы