2011-01-22 65 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