我想为我的项目创建一个构建,用于处理为测试和发布环境创建工件。我坚持如何根据构建配置使DeployIisAppPath变量可配置。例如,对于测试版本,我想将路径设置为“默认网站/测试文件夹”,但在生产(发布)中,我需要它是“其他网站/不同文件夹”。此值通常通过MSBuild参数传递到Visual Studio Team Services构建定义。我可以用变量做这个,如果有,怎么做?这些值可以在项目中设置吗?
我在网上找不到任何可以帮助我弄清楚如何做到这一点。
答案 0 :(得分:0)
也许我有解决问题的方法。
可以在Visual Studio中定义发布配置文件以发布(WCF / Web服务)项目。
以前定义应该用于为每个环境构建的构建配置,例如: DEV,TEST,QA,PROD。在这些中你可以定义不同的输出目录和最好的,你可以为它们每个生成一个自己的web.config转换文件。如果您想在不同的阶段使用不同的数据库服务器连接字符串,这是非常重要的,仅作为示例。
创建构建配置后,只需在(Web服务)项目上打开上下文菜单,然后选择Publish...
,您应该设置如下所示的发布配置文件:
上述各点(以相同顺序)的示例:
您现在不必发布,但如果您愿意,您可以这样做。您将收到一个带有Web服务的zip文件,以及旁边的一些其他文件,这些文件是MSDeploy.exe在您的发布管道中进行部署所必需的。
之后,您应该切换到TFS中的构建管道。你必须为你的舞台创建一个变量。因此,您必须在构建定义(edit Build definition > Options > Multi-configuration > enable it, add as multipliers "BuildConfiguration"
)的选项中启用多配置。
在构建定义的编辑模式中,您必须添加一个名为BuildConfiguration的变量,其值为"DEV, TEST, QA, PROD"
。此变量现在可用于构建任务。只需将其添加到配置文本框中的构建任务$(BuildConfiguration)
即可。
现在,对于添加到由'分隔的变量的每个构建配置,'将执行构建过程。
要创建artefact(上面的zip文件),您必须添加一些MSBuild参数,此时您将使用与您的构建配置具有相同名称的发布配置文件。这就是诀窍! :)
可以遵循参数列表:
/p:DeployOnBuild=true /p:PublishProfile=$(BuildConfiguration)
此参数列表将根据每个构建配置/发布配置文件为发布生成所需的工件。现在,您可以为每个构建配置,从而为您的环境提供单独的配置,例如您提到的不同DeployIisAppPath。
要在发布定义中使用工件,您必须在构建定义中添加Publish Artifact
(在TFS 2017中)任务。通过从定义的Package位置执行批处理文件,可以使用Batch任务自动发布Web服务。示例配置为:
Path: $(System.DefaultWorkingDirectory)/<YourBuildDefinitionName>/<YourTargetSatgeName>/My.WebService.cmd
Arguments: /Y /M:<TargetMachineName>
我希望我能帮助你。如果您有任何问题或某些要点/说明不清楚,请告诉我......