[2015-11-10]分享一个调用msbuild生成解决方案并打包发布的批处理脚本


最近工作成果之一,特此记录。

用于打包的批处理脚本

注意设置 path/to/your/solutionfile.sln 指向vs的解决方案文件。

setlocal enabledelayedexpansion
set "filepath=%cd%"
cd /d c:
if not exist localzips ( mkdir localzips )
cd localzips
set RootPath=%1
if "%RootPath%"=="" (
set h=%Time:~0,2%
set h=!h: =0!
set RootPath=%date:0,4%%date:5,2%%date:8,2%!h!%Time:3,2%
)
mkdir %RootPath%
cd %RootPath%
copy %filepath%\DeployTestGroup01.bat DeployTestGroup01.bat
copy %filepath%\DeployGroup01.bat DeployGroup01.bat
touch create_by_click_to_zip_deploy_bat.txt
msbuild /p:DeployOnBuild=True /p:VisualStudioVersion=12.0 /p:PublishProfile=PRD /P:Configuration=PRD /p:DeployPackageLocation="c:\localzips%RootPath%" path/to/your/solutionfile.sln
pause
start .

项目的发布配置文件PRD.pubxml

注意设置DeployIisAppPath节,和IIS中的站点名称一致。




Package
PRD
Any CPU

True
<ExcludeApp_Data>False</ExcludeApp_Data>
$(DeployPackageLocation)$(AssemblyName)$(AssemblyName).zip
true
Site Name In IIS

调用发布包自带脚本的批处理脚本DeployTestGroup01.bat和DeployGroup01.bat

DeployTestGroup01.bat,使用/T 选项,并非真正执行发布,只是测试预览。
注意设置各项参数。

call path_to_the_cmd_file /T /M:MachineNameOrIp /U:UserName /P:Password
pause

DeployGroup01.bat,使用/Y 选项,实际执行发布。

call path_to_the_cmd_file /Y /M:MachineNameOrIp /U:UserName /P:Password
pause

cmd_file的使用说明,可以在 xxxx.deploy-readme.txt 文件中查看。UserName和Password可以用有权限的域账号,也可以设置IIS管理器用户,参考webdeploy的设置。

posted @ 2017-08-30 23:10  personball  阅读(875)  评论(0)    收藏  举报