我正在使用一个解决方案,其中包括一个 Windows 服务主机项目,该项目使用单个 app.config 文件,该文件包含服务所需的所有内容(日志配置、WCF 配置、自定义配置和连接字符串)。
我实际工作的方式是当用户抱怨生产环境中有问题时,我编辑 app.config 文件,修改连接字符串使其指向生产数据库,重新编译服务主机项目,然后在我的开发环境,看看发生了什么。
如果我必须测试对生产环境来说风险太大的东西,我会再次编辑 app.config 文件,修改 app.config 文件使其指向测试数据库,重新编译服务主机项目,......你看我要去哪里...
为了避免每次我必须切换环境时编辑 app.config 文件的负担,我决定创建一个“生产”构建配置和一个“测试”构建配置。我添加了两个附加配置文件,每个环境一个,它们是主 app.config 文件的副本,除了它们的连接字符串指向各自的数据库。我修改了项目的预构建事件以包含根据所选构建配置复制环境的 app.config 文件的代码。
我对该方法有两个担忧:
如果我在 app.config 文件中还有其他要修改的内容(WCF、日志记录等),我必须记住在另一个文件中复制我的修改。(对我来说是个大问题,因为我的记忆力和红鱼一样多)
我讨厌因为额外的构建事件、项目目录中的额外文件等而使项目更复杂。
每个构建配置输出在不同的目录中。我讨厌为了克服数据源问题而复制相同的代码。
任何人都可以提出一种更简单的方法来处理多种环境?
提前致谢。