Web.config 转换覆盖 TFS 文件夹中的主要 web.config
Web.config transform overwriting main web.config in TFS folder
上个月我为各种配置设置了 web.config 转换:本地、开发、暂存、生产等。发布时,这些都有效,但现在看来,当我发布时,它会覆盖当前 Web.config 在 TFS 源文件夹中,然后将其复制到指定的构建文件夹中。这意味着如果有插入,它最终会在那些 web.config 中创建重复项。我一直在寻找发生这种情况的解决方案或原因,但我找不到任何东西。除了删除主要 web.config 中的一些重复标签外,我没有更改项目或转换中的任何设置。有什么想法可能会突然导致这种情况吗?
假设您使用的是基于任务的构建,请检查您的构建定义以查看您是否有类似 "Replace Tokens" "Copy files" 的任务,并检查您如何设置任务。
所以在逐行查看我的项目文件后,我终于找到了这个:
<Target Name="AfterBuild">
<TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config" />
</Target>
删除它解决了问题。我不知道这是如何偷偷进入项目文件的,但是你去吧!
上个月我为各种配置设置了 web.config 转换:本地、开发、暂存、生产等。发布时,这些都有效,但现在看来,当我发布时,它会覆盖当前 Web.config 在 TFS 源文件夹中,然后将其复制到指定的构建文件夹中。这意味着如果有插入,它最终会在那些 web.config 中创建重复项。我一直在寻找发生这种情况的解决方案或原因,但我找不到任何东西。除了删除主要 web.config 中的一些重复标签外,我没有更改项目或转换中的任何设置。有什么想法可能会突然导致这种情况吗?
假设您使用的是基于任务的构建,请检查您的构建定义以查看您是否有类似 "Replace Tokens" "Copy files" 的任务,并检查您如何设置任务。
所以在逐行查看我的项目文件后,我终于找到了这个:
<Target Name="AfterBuild">
<TransformXml Source="Web.config" Transform="$(ProjectConfigTransformFileName)" Destination="$(WebProjectOutputDir)\Web.config" />
</Target>
删除它解决了问题。我不知道这是如何偷偷进入项目文件的,但是你去吧!