我花了最后几个小时寻找解决日益严重的问题的最佳方法:
- 我们有越来越多的网站(在 VS 2010 中),因此需要管理的 web.config 文件也越来越多。dev 和 prod 环境之间有很多差异(连接字符串、跟踪/电子邮件配置等)。
- 此外,根据某人正在工作的团队(例如:网页设计团队),他无法访问某些密码和加密密钥(位于 web.config 文件中)。
目前我们有:
- 包含 prod 值(连接字符串、密码)的web.config文件。
- 包含 dev 值的web.config.dev文件。
- 一个web.config.restricted文件,其中包含允许 Web 设计人员完成工作所需的最低值。
所以:
- 每次开发人员想要在 web.config 文件中添加新行时,他还需要将该行插入到 web.config.dev 文件(最终是 web.config.restricted 文件)中。
- 入住后:
- 开发团队的所有成员都必须从 web.config.dev 文件中复制所有内容并覆盖他们的 web.config 文件。
- 网页设计团队的所有成员都必须从 web.config.restricted 文件中复制所有内容并覆盖他们的 web.config 文件。
- 这些手动操作会引发很多错误(人们忘记反映所有文件中的更改)。
- 必须将 TFS 配置为不允许 Web 设计团队访问 web.config 文件(他们必须手动创建文件)。
我正在寻找一种不那么老套的方法:
- 无需复制所有 web.config 文件内容即可管理多个环境 (dev/prod)。
- 管理 TFS 权限以便对某些团队隐藏一些敏感值。
注意:
- 我正在使用网站项目(不是 Web 应用程序),所以我不能使用 web.config 转换。
- 看起来 Web 部署项目在 VS 2012 中将不再可用,所以我宁愿避免现在开始使用它。
- 发布配置文件可能是一个很好的解决方案,但我们仍在使用 VS 2010。
我确信不是第一个遇到这个问题的人。我很想知道人们是如何处理的:)