2

我的问题与2017年TFS Web应用程序与此类似构建和部署使用Web部署包

Build and Deploy a Web Application with TFS 2015 Build

但是,该解决方案不是为我工作。我正在致力于持续集成,并且我必须部署Web应用程序和其他网站,并且在创建用于部署的.zip Package网站时我没有问题。我正在使用/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.StagingDirectory)\\"

然后我使用部署IIS应用程序来提取网站的虚拟目录中的.zip包。

enter image description here

但随着Web应用程序,无论我在MSBuild的参数没有什么作品使用什么样的参数,而我不希望从项目到服务器上复制所有的文件,我想一个选项与从服务器发布后删除.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

在'/ p:PublishProfile =配置文件名称'旁边工作良好,请确保您使用正确的配置文件名称。 –

+1

您可以在构建定义中共享整个构建日志和设置吗? –

回答

3

什么都没有工作,直到我一直在寻找成构建的TFS选项定义以及何时必须为定义选择一个模板,可以看到两个选项构建和部署,我选择了Build的模板,但我尝试了一个部署选项: enter image description here

,默认情况下在的MSBuild变量的参数为:/p:OutDir="$(build.binariesdirectory)\\" enter image description here

在该文件夹,我们有我们需要的一切部署。

1

要将参数传递到MSBuild,您需要在项目属性文件夹下的PublishProfiles文件夹中有一个.pubxml文件(称为发布配置文件)。这就是使用/p:DeployOnBuild=true;PublishProfile=MyProfile作为msbuild参数的原因。更多详细信息,请参阅赛义德·易卜拉欣·哈希米这样一个问题:How do I configure MSBuild to use a saved publishProfile for WebDeploy?

如果你想生成工件,请确保您还可以使用Publish Build Artifacts构建步骤。复制构建的工件并发布构件以删除服务器上的位置。这将是稍后选择版本的构建工件的位置。这些文件将定位在分期folder-- Build.StagingDirectoryagent/_work/2/a

enter image description here

了解更多详细看看这个话题Visual Studio Team Services Release Management IIS Web Deployment vnext