我的问题与此类似
Build and Deploy a Web Application with TFS 2015 Build
但是,解决方案对我不起作用。我正在进行持续集成,我必须部署一个Web应用程序,以及其他网站,我不会在为部署创建.zip包时遇到问题。我正在使用/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.StagingDirectory)\\"
然后我使用Deploy IIS App在网站的虚拟目录中解压缩.zip包。
但是使用Web应用程序,无论我在MSBuild Arguments中使用什么参数都没有用,我也不想将项目中的所有文件复制到服务器,我想要一个不同的选项来删除从服务器发布后的.sln和其他文件。
我尝试/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)
并且我使用了作为Web Deploy Package创建的发布配置文件,但在工件构建之后我得到了相同的文件,我的意思是所有项目文件,包括.sln。
当我使用/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)
时,我不确定在工件中我应该期待什么,但我没有看到更改。
有人能解释一下我在这种情况下应该等些什么?以及如何使用TFS正确部署Web应用程序项目(因为当我使用.pubxml从Visual Studio发布工作正常时,在服务器中正在复制权限文件)并且想法是在构建和发布中TFS没有使用Visal Studio的任何手册。
任何想法和解释都会受到欢迎,谢谢。
答案 0 :(得分:2)
在我查看构建定义的TFS选项之前没有任何工作,当你必须为定义选择一个模板时,你可以看到两个选项Build and Deployment,我选择了Build&#39的模板,但我试过了使用部署选项:
,默认情况下,在MSBuild Arguments中,参数为:/p:OutDir="$(build.binariesdirectory)\\"
在该文件夹中,我们拥有部署所需的一切。
答案 1 :(得分:1)
要将参数传递到MSBuild,您需要在项目属性文件夹下的PublishProfiles文件夹中有一个.pubxml
文件(称为发布配置文件)。这就是使用/p:DeployOnBuild=true;PublishProfile=MyProfile
作为msbuild参数的原因。更多详情请参阅此问题中的 Sayed Ibrahim Hashimi :How do I configure MSBuild to use a saved publishProfile for WebDeploy?
如果您想生成工件,请确保您还使用Publish Build Artifacts构建步骤。复制构建的工件并将工件发布到服务器上的删除位置。这将是稍后选择Release的构建工件的位置。这些文件将位于暂存文件夹 - Build.StagingDirectory
,如agent/_work/2/a
有关详细信息,请查看此主题Visual Studio Team Services Release Management IIS Web Deployment vnext