也许我有你的问题的解决方案。
可以在Visual Studio中定义发布配置文件来发布(WCF/web服务)项目。
以前定义了应该用于为每个环境构建的构建配置,例如, DEV,TEST,QA,PROD。在这些你可以定义不同的输出目录和最好的,你可以为他们每个人生成一个自己的web.config转换文件。如果您想在不同阶段使用不同的数据库服务器连接字符串,这一点非常重要,仅作为示例。
- 使用目标环境/舞台名(同样喜欢:
创建构建配置,在(网络服务),只需打开上下文菜单项目,并选择Publish...
那里,你应该建立一个发布配置一样跟在后面建立有意义的命名配置 )
- 发布方法:Web部署包
- 包位置:一个地方,你可以用你的发布管道抓住它
- 网站名称:“默认网站/测试文件夹”(适用于您的测试环境) “其他一些网站/不同的文件夹”(您PROD 环境)
- 集构建配置以前成立,是目标环境
上面的点的例子(以相同的顺序):
- 名称:TEST
- 发布方法:Web部署包
- 包位置:.... \ BuildDrop \ TEST \ My.WebService.zip)
- 网站名称:“默认Web站点/ test_service”
- 配置: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>
我希望我能帮助你。如果您有任何问题或某些要点/说明不清楚,请告诉我...
来源
2017-11-29 13:30:03
ChW