【问题标题】:How to manage A LOT of similar configurations in TFS如何在 TFS 中管理大量类似的配置
【发布时间】:2018-01-15 23:52:31
【问题描述】:

我有一个 ASP .Net MVC 应用程序,它有 4 个不同的发布配置文件:dev、test、demo 和 prod。

这些发布配置文件是使用相同的两个步骤构建的:NuGet 还原,然后是 MSBuild。然后,它们被部署到许多不同的服务器上:一些开发服务器(每个团队一个开发服务器)、一个测试服务器、一个演示服务器和几个生产服务器。

msbuild /p:Configuration="$(Configuration)"
        /p:PlatformTarget="any cpu"
        /p:DeployOnBuild="True"
        /p:DeployTarget="MsDeployPublish"
        /p:MSDeployServiceURL="$(MSDeployServiceURL)"
        /p:DeployIISAppPath="portal"
        /p:CreatePackageOnPublish="False"
        /p:MsDeployPublishMethod="WMSVC"
        /p:AllowUntrustedCertificate="True"
        /p:UserName="Deploy_User_For_TFS"
        /p:Password="P@ssw0rd"
        /p:AutoParameterizationWebConfigConnectionStrings=False
        /p:ExcludeFilesFromDeployment="Cache"

目前我有 4 个 TFS 构建配置(每个发布配置文件一个)和一个文件,其中包含 MSDeployServiceURL 参数的所有可能值。

这种方法有两个问题:

  1. 当我们不得不添加一个新参数 AutoParameterizationWebConfigConnectionStrings 时,我们不得不在 4 个地方而不是一个地方进行更改。
  2. 我们必须有一个共享文件作为参数的来源。很难理解应该在哪里复制哪个值,而且人们经常会犯错误。

所以我有两个问题:

  1. 有没有办法拥有一个通用模板,我可以只指定我的参数 Configuration 和可能的 MSDeployServiceURL 列表,而其他一切都保持不变?拥有这样的模板应该可以解决问题 #1。
  2. 有没有办法定义一个下拉式变量,用户无法在其中输入值,但应从预定义的值列表中选择?

【问题讨论】:

  • 您是否通过 Jacob 的回答解决了问题?它解决了您的问题,您可以Accept it as an Answer,这对阅读此主题的其他社区成员可能会有所帮助。
  • 我们试过了,比以前更不方便:旧配置难以理解和维护,但易于使用。并且提议的配置“看起来不错”,但在实践中,为了发布它而构建一些东西很麻烦。

标签: deployment tfs msbuild msdeploy


【解决方案1】:

有什么方法可以让我指定一个通用模板 只有我的参数配置和可能的列表 MSDeployServiceURLs 并让其他一切保持不变?有 这样的模板应该可以解决问题 #1。

您可以进行简化,以便发布配置创建一个模板化发布配置文件。然后使用TFS's release management,您可以使用适当的值更新发布配置文件。根据您的描述,您似乎正在尝试将编译和发布结合起来。

例如,在 TFS 中,您可以有一个构建版本(例如,MyApp-Release)来构建发布配置中的代码。作为该过程的一部分,它会传递诸如部署 URL 之类的占位符。例如,/p:MSDeployServiceURL="$(MSDeployServiceURL)" 将是 /p:MSDeployServiceURL="__MSDeployServiceURL__"

在 TFS 版本中,您将在发布配置文件中包含替换令牌(如果需要,可以使用 Colin's ALM Corner Custom Build Tasks)的步骤。然后,替换令牌任务将使用来自具有相同名称(减去下划线)的发布环境变量的值更新__MSDeployServiceURL__。因此,您的版本将具有 devtestdemoprod 环境,并且对于每个环境,都会有一个名为 MSDeployServerURL 的变量,每个变量具有不同的值和替换标记步骤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-23
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多