2017-08-07 108 views
0

我想为我的项目构建一个用于处理为测试和发布环境创建工件的构建。我被困在如何根据构建配置使DeployIisAppPath变量可配置。例如,对于测试版本,我想将路径设置为“默认网站/测试文件夹”,但在生产(发布)中,我需要它是“其他站点/不同文件夹”。此值通常通过MSBuild参数传递给Visual Studio Team Services构建定义。我可以用变量来做到这一点,如果是这样,怎么做?这些值可以在项目本身中设置吗?如何根据构建配置将DeployIisAppPath设置为变量?

我在网上找不到任何东西,帮助我找出如何做到这一点。

回答

0

也许我有你的问题的解决方案。

可以在Visual Studio中定义发布配置文件来发布(WCF/web服务)项目。

以前定义了应该用于为每个环境构建的构建配置,例如, DEV,TEST,QA,PROD。在这些你可以定义不同的输出目录和最好的,你可以为他们每个人生成一个自己的web.config转换文件。如果您想在不同阶段使用不同的数据库服务器连接字符串,这一点非常重要,仅作为示例。

  1. 使用目标环境/舞台名(同样喜欢:

    创建构建配置,在(网络服务),只需打开上下文菜单项目,并选择Publish...那里,你应该建立一个发布配置一样跟在后面建立有意义的命名配置 )

  2. 发布方法:Web部署包
  3. 包位置:一个地方,你可以用你的发布管道抓住它
  4. 网站名称:“默认网站/测试文件夹”(适用于您的测试环境) “其他一些网站/不同的文件夹”(您PROD 环境)
  5. 集构建配置以前成立,是目标环境

上面的点的例子(以相同的顺序):

  1. 名称:TEST
  2. 发布方法:Web部署包
  3. 包位置:.... \ BuildDrop \ TEST \ My.WebService.zip)
  4. 网站名称:“默认Web站点/ test_service”
  5. 配置:TEST(如前面定义)

你没有立即发布,但如果你愿意,你可以做的。除了在发布管道中使用MSDeploy.exe进行部署所需的Web服务和其他一些文件之外,您还将收到一个zip文件。

之后,您应该切换到TFS中的构建管道。你必须为你的舞台创建一个变量。因此,您必须在构建定义的选项(edit Build definition > Options > Multi-configuration > enable it, add as multipliers "BuildConfiguration")中启用多配置。 在构建定义的编辑模式中,您必须添加名为BuildConfiguration的值为"DEV, TEST, QA, PROD"的变量。此变量现在可用于构建任务。只需将它添加到配置文本框中的构建任务中即可,如$(BuildConfiguration)。 现在,对于添加到以','分隔的变量的每个构建配置,将执行构建过程。 要创建人工制品(从上面的zip文件)你必须添加一些MSBuild的论点,并在这一点上,你会用你的发布有一个像你的构建配置同名文件。这就是诀窍! :) 参数列表LIK如下:将导致基于每个构建配置出版所需的器物

/p:DeployOnBuild=true /p:PublishProfile=$(BuildConfiguration) 

此参数列表/发布配置文件。现在您需要为每个构建配置,并因此为您的环境提供单独的配置,例如您提到的不同DeployIisAppPath。

要使用的产品在你的发行版的定义,你必须在你的生成定义添加Publish Artifact(TFS中2017年)的任务。可以使用批处理任务通过从定义的Package位置执行批处理文件来自动发布Web服务。配置示例如下:

Path: $(System.DefaultWorkingDirectory)/<YourBuildDefinitionName>/<YourTargetSatgeName>/My.WebService.cmd 
Arguments: /Y /M:<TargetMachineName> 

我希望我能帮助你。如果您有任何问题或某些要点/说明不清楚,请告诉我...