几天来我一直在试图解决这个问题,但无济于事。
我有一个MVC .Net应用程序,存储在VSTS的GIT存储库中。当我签入代码时,它正在构建并且单元测试已在云中运行。
现在,如果这些单元测试成功,我希望将项目部署到已安装VSTS代理的远程计算机上。我可以在VSTS Web界面中看到代理,但是我不知道如何获得自动构建以将完成的构建发送到远程代理计算机上的d:/ mydeploypath。
这可能吗?
答案 0 :(得分:1)
绝对有可能!
有一些构建步骤可用于将文件复制到远程计算机,例如Copy Files over SSH
和Windows Machine File Copy
。但是,如果您尝试将代码部署到要构建的计算机上,则可以使用Copy Files
步骤,因为它不需要凭据。由于它是一个Web应用程序,因此需要执行IIS Utilities
之类的一些步骤来停止\启动应用程序池,以使文件不会因部署而被锁定。
因此,使用Copy Files
构建步骤,可以将$(Agent.BuildDirectory)
用作源目录(或将构建输出移至的任何位置),并将目标文件夹设置为计算机上所需的目标。
在发布过程的开发过程中,build / release变量对我帮助很大: https://docs.microsoft.com/en-us/vsts/pipelines/build/variables?view=vsts
答案 1 :(得分:1)
简单的方法是使用WinRM-IIS Web App Deployment task。
要生成Web部署程序包,可以在Visual Studio Build任务的“ MSBuild Arguments”框中指定以下参数:
/p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageLocation="$(build.artifactstagingdirectory)" /P:PackageTempRootDir=""