Как опубликовать сайт с помощью 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: