Как опубликовать сайт с помощью PSAKE - PullRequest
8 голосов
/ 22 января 2011

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

Ответы [ 3 ]

5 голосов
/ 09 апреля 2012

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

# ...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
4 голосов
/ 08 февраля 2011

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

https://gist.github.com/579086

3 голосов
/ 25 января 2011

В 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/

...