2011-01-22 98 views

回答

3

在Psake中,你有exec函數來運行程序。通過此任務/功能,您可以創建,編輯和發佈您的Web應用程序

可以執行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 2011-01-31 11:08:55

5

this post,這裏是發佈你的web應用的另一種方式。我使用這種技術來發布.asmx Web服務。訣竅是msbuild目標,它爲您的web應用程序創建可分發的文件。

# ...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腳本中的網站和應用程序池。

更新: 我發現以下命令更好一些。我上面發佈的那個沒有正確應用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