【问题标题】:Dynamically change config files in .Net Application based on environments through Bamboo通过 Bamboo 根据环境动态更改 .Net Application 中的配置文件
【发布时间】:2019-02-14 11:14:41
【问题描述】:

我有一个用 .net c# 编写的 Windows 服务。我们有三个不同的环境,比如devtestprod。我还为 3 个环境提供了 3 个不同的配置文件,例如 devAppConfigTestAppConfigProdAppConfig

之前,我们使用手动部署,所以我们使用替换配置文件和部署二进制文件。现在部署将是自动化的,因为我们使用的是 Bamboo。

现在我的问题是如何为不同的环境部署动态更改 AppConfig。

我在 Bamboo 中有 3 个不同的阶段,命名为 DevDeployTestDeployProdDeploy。当我运行这些阶段时,它必须更改配置文件并进行部署,但我不确定如何。

谁能指导我解决我的问题?

【问题讨论】:

  • @PranavSingh 这不是重复的,因为我希望在 Bamboo 中完成这些更改。在你提供的链接中,没有任何地方提到竹子
  • 我希望如果您有多个环境,那么您也将创建多个部署项目。所以对于每个部署项目,你可以编写一个powershell脚本或者node脚本来选择配置文件并使用它进行部署。
  • @Chidambaram 我只有构建项目而不是部署项目。由于它是二进制文件的复制,我使用 powershell 脚本将二进制文件从 Bamboo 代理复制到目标服务器。你认为我应该采取部署项目而不是构建项目吗?

标签: c# deployment app-config environment bamboo


【解决方案1】:

我想这会起作用:

  1. 在解决方案的某个目录中创建一些配置文件,格式为 Config.ConfigurationName.xml,例如 Config.DEV.xml、Config.Test.xml.. .
  2. 添加 PreBuild 事件(通过 csproj 属性窗口或在 csproj 文件中手动添加),例如:<PropertyGroup><PreBuildEvent>xcopy /y (ProjectDir)\Configs\Config.$(Configuration).xml $(ProjectDir)\CONFIG\Config.xml</PreBuildEvent></PropertyGroup> 或在 VS rigth 中单击项目 -> 属性:
  3. 在配置管理器的 VS 中为不同的配置添加一些配置,例如。 开发,测试。 我的项目配置:

  1. 使用参数在 Bamboo msbuild 中执行:/p:SolutionConfiguration=%CONFIGURATION% 其中 %CONFIGURATION% 是 Bamboo 中的一个变量,表示您正在部署哪个 ENV,例如 DEV、Test 等。

【讨论】:

  • 抱歉,回复晚了。我正在尝试这种方法。当我添加第二点中提到的 prebuildevent 时,我收到了这个错误。而且该项目没有在VS中加载。错误:元素 下的元素 无法识别。
  • 我已经在我的问题中添加了相同的图像
  • 对不起,我跳过了应该放置这个 PreBuildEvent 节点的地方。它应该是一个新的 PropertyGroup: ... 但我认为最好的选择是由 VS 执行此操作。我稍后会添加一个屏幕
  • 非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 2019-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多