Как опубликовать сайт с помощью PSAKE

Есть ли способ опубликовать веб-приложение asp.net с использованием PSAKE, как это делает Visual Studio?

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/

Согласно этому посту, вот еще один способ публикации вашего веб-приложения. Я использовал эту технику для публикации веб-службы.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!"
}

См. Также этот пост для получения дополнительной информации о настройке и удалении сайтов IIS и пулов приложений из скрипта psake.

ОБНОВЛЕНИЕ: я нашел следующие команды, чтобы работать немного лучше. Тот, который я разместил выше, неправильно применяет преобразования 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

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

https://gist.github.com/579086

Другие вопросы по тегам