我一直试图弄清楚这几天无济于事。
我有一个MVC .Net应用程序,存储在VSTS中的GIT仓库中。当我签入代码时,它正在构建,并且单元testa正在云中运行。
现在,如果这些单元测试成功,我希望将项目部署到安装了VSTS代理的远程计算机上。我可以在VSTS Web界面中看到代理,但我不知道如何获得自动构建以将完成的构建发送到远程代理机器上的d:/ mydeploypath。
这可能吗?
绝对可能!
可以使用构建步骤将文件复制到远程计算机,例如Copy Files over SSH
和Windows Machine File Copy
。但是,如果您尝试将代码部署到正在构建的计算机上,则可以使用Copy Files
步骤,因为它不需要凭据。由于它是一个Web应用程序,因此有一些步骤如IIS Utilities
可以停止\启动应用程序池,因此不会为部署锁定文件。
因此,使用Copy Files
构建步骤,您可以使用$(Agent.BuildDirectory)
作为源目录(或者您的构建输出将在何处),并将目标文件夹设置为计算机上的所需目标。
在我们的发布过程中,构建/发布变量帮助了我很多:https://docs.microsoft.com/en-us/vsts/pipelines/build/variables?view=vsts
简单的方法是使用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=""