是否可以使用来自TeamCity的MSDeploy使用grunt将单页应用程序项目构建部署到IIS?该项目不是任何类型的Visual Studio解决方案,也不是使用MSBuild构建的。
我的命令参数不起作用:
-source:package ='%teamcity.build.checkoutDir%\ Dist。%build.number%。zip' -dest:auto,computerName =“%system.MsDeployServiceUrl%”,userName =“%system.UserName% ”,密码= “%system.Password%” 的authType = “基本”,includeAcls = “假” -verb:sync -setParamFile:“%teamcity.build.checkoutDir%\ Dist。%build.number%.zip.SetParameters.xml” -AllowUntrusted -setParam:“IIS Web应用程序名称”=“%system.WebSiteName%” - verbose
我得到的错误是:
[11:47:31] [第3/3步]错误代码:ERROR_EXCEPTION_WHILE_CREATING_OBJECT [11:47:31] [步骤3/3]更多信息:'package'类型的对象和 路径'D:\ TeamCity \ buildAgent \ work \ e2b0015b49d87e90 \ Dist.30.zip'不能 被创造。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT。 [11:47:31] [第3/3步]错误:Zip包 'D:\ TeamCity \ buildAgent \ work \ e2b0015b49d87e90 \ Dist.30.zip'无法 加载。 [11:47:31] [步骤3/3]错误:无法找到文件 'd:\ TeamCity的\ buildAgent \工作\ e2b0015b49d87e90 \ Dist.30.zip'。 [11:47:31] [步骤3/3]错误计数:1。[11:47:31] [步骤3/3]处理 退出代码-1 [11:47:31] [步骤3/3]步骤部署(命令行) 失败
我的构建过程正在运行,因为我最终得到了正确的文物,我似乎无法使用MSDeploy部署我生成的文物
这是我的文物的截图:
答案 0 :(得分:0)
我设法通过将我的参数更改为以下内容来实现此目的:
- 源:iisapp ='%teamcity.build.checkoutDir%\ DIST' -dest:iisapp =' C:\ WWW \ XXXX-网站',计算机名="%system.MsDeployServiceUrl%",用户名="%system.UserName%&# 34;,密码="%system.Password%",的authType ="碱性",includeAcls ="假" -verb:sync -AllowUntrusted -verbose
将我的用户更改为管理员用户而不是IIS用户。注意使用iisapp - 关键是使用msdeploy -help读取MSDeploy api
仅供参考 - 一个好的测试是在控制台中使用针对msdeploy.exe的预期命令并检查输出错误,然后在命令工作时将命令推送到teamcity。
答案 1 :(得分:0)
我创建了一个grunt和gulp插件来完成你想做的事情。 gulp-mswebdeploy-package和grunt-mswebdeploy-package将从任何文件夹创建一个ms webdeploy包,并且不要求您的构建在Windows上运行。 https://www.npmjs.com/package/gulp-mswebdeploy-package https://www.npmjs.com/package/grunt-mswebdeploy-package