0

如何为 web.config xdt 转换添加 PostBuild 命令,以便当构建成功排队时,它将按照 web.platform.config xdt 命令转换 web.config。

如果构建分支是例如 OnlineManagement_Dev,那么当我排队这个分支时,转换应该基于 web.debug.config 发生。如果构建分支是例如 OnlineManagement_UAT,那么当我对该分支进行排队时,转换应该基于 web.UAT.config 进行。如果构建分支是例如 OnlineManagement_PROD,那么当我对该分支进行排队时,转换应该基于 web.PROD.config 进行。

我尝试查看以下解决方案,但看起来“TransformXml”任务存在文件锁定错误。MSBuild 是否有任何更新可以提供比这更简单和更好的解决方案?

http://www.diaryofaninja.com/blog/2011/09/14/using-custom-webconfig-transformations-in-msbuild

4

1 回答 1

2

1) FileLock“错误”在代码示例中解决,他们在包括解决方法之前解释错误的部分。

2) 您是否有包含分支类型的环境变量和/或 MsBuild 属性?如果是这样,只需使用它来确定来源。

例如

<TransformXml Source="web.UAT.config"
  Transform="TransformFile.config"
  Destination="Web.config"
  StackTrace="true" />

使用包含此值的环境变量或 MSBuild 属性的名称更新 Source。

<TransformXml Source="web.$(EnvironmentType).config"
  Transform="TransformFile.config"
  Destination="Web.config"
  StackTrace="true" />

请注意,如果您是从命令提示符构建并且已经在环境变量中包含它,请像 $(ENVIRONMENT_VARIABLE_NAME) 一样包装 ENVIRONMENT_VARIABLE_NAME,MsBuild 会识别它。

于 2014-12-04T22:50:51.810 回答