我已经尝试过使用Windows文件复制和IIS部署任务但是understand this isn't a very good solution for security reasons,所以想知道最好的任务是使机器上的构建/发布代理将人工制品复制到基于Azure的VM并在本地部署到其IIS安装?
我已经尝试过使用Windows文件复制和IIS部署任务但是understand this isn't a very good solution for security reasons,所以想知道最好的任务是使机器上的构建/发布代理将人工制品复制到基于Azure的VM并在本地部署到其IIS安装?
2 回答
我建议您强烈重新考虑不将您的应用程序部署到构建代理程序 . 由于缺少DLL或文件,这将使查找问题变得非常困难,因为构建服务器具有所有内容 . 我建议创建另一个VM来部署或利用Azure的PaaS用于Web应用程序 .
尽管如此,因为您在同一个VM上本地工作,您可以简单地利用
Copy Files
任务将文件移动到他们需要的位置 . 要"deploy"该应用程序,您只需将网站的输出复制到IIS目录即可 .另一种选择是创建一个PowerShell脚本,该脚本可以设置,配置应用程序并将其部署到本地计算机 . 在这种情况下,您可以简单地利用PowerShell任务 .
源代码(构建定义中的 Get sources 部分)将在构建期间自动下载到构建代理,因此您无需通过Windows文件复制任务将文件复制到该机器,简单的工作流程是:
添加NuGet任务以恢复包
添加Visual Studio构建任务(MSBuild参数:
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageLocation="$(build.artifactstagingdirectory)\\web.zip" /P:PackageTempRootDir=""
)添加WinRM-IIS Web App部署任务:(Web部署包:
$(Build.ArtifactStagingDirectory)\web.zip
)正如virusstorm所说,您可以通过“复制文件”任务将文件复制到该计算机上的其他路径 .
另一方面,默认情况下,如果您正在使用发行版,则工件将下载到目标计算机,如果部署计算机与构建代理程序计算机不同,则可以考虑Deployment groups .