通过 Bamboo 根据环境动态更改 .Net 应用程序中的配置文件

Dynamically change config files in .Net Application based on environments through Bamboo

我有一个用 .net c# 编写的 windows 服务。我们有三种不同的环境,比如 devtestprod。我还有 3 个不同的配置文件,用于 3 个环境,比如 devAppConfigTestAppConfigProdAppConfig

之前,我们曾经手动部署,所以我们过去常常替换配置文件并部署 binaries.Now 由于我们使用的是 Bamboo,所以部署是自动化的。

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

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

任何人都可以为我的问题指导正确的方向吗?

我想这行得通:

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

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