我有一个 .NET 应用程序,它具有用于调试和发布版本的不同配置文件。例如。调试 app.config 文件指向开发SQL服务器 http://en.wikipedia.org/wiki/Microsoft_SQL_Server它启用了调试并且发布目标指向实时 SQL Server。还有其他设置,其中一些在调试/发布时是不同的。
我目前使用两个单独的配置文件(debug.app.config 和release.app.config)。我在项目上有一个构建事件,它表示如果这是一个发布版本,则将release.app.config复制到app.config,否则将debug.app.config复制到app.config。
问题是应用程序似乎从settings.settings文件获取其设置,因此我必须在Visual Studio中打开settings.settings,然后提示我设置已更改,因此我接受更改,保存settings.settings并有重建以使其使用正确的设置。
是否有更好/推荐/首选的方法来达到类似的效果?或者同样,我的做法完全错误吗?有更好的方法吗?
任何可能因环境而异的配置都应存储在机器级,不是应用层. (有关配置级别的更多信息。) http://msdn.microsoft.com/en-us/library/1xtk877y.aspx
这些是我通常在机器级别存储的配置元素类型:
- 应用程序设置 http://msdn.microsoft.com/en-us/library/ms228154.aspx
- 连接字符串 http://msdn.microsoft.com/en-us/library/bf7sd233.aspx
- 零售=真实 http://msdn.microsoft.com/en-us/library/ms228298.aspx
- 邮件设置 http://msdn.microsoft.com/en-us/library/ms164240.aspx
- 健康监测 http://msdn.microsoft.com/en-us/library/bb398933.aspx
- 托管环境 http://msdn.microsoft.com/en-us/library/ms228159.aspx
- 机器钥匙 http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx
当每个环境(开发人员、集成、测试、阶段、实时)在c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG目录,然后您可以推广您的应用代码环境之间无需任何构建后修改。
显然,机器级 CONFIG 目录的内容在不同的存储库或与应用程序不同的文件夹结构中进行版本控制。您可以通过智能使用来使您的 .config 文件对源代码管理更加友好配置源 http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource.aspx.
我已经这样做了 7 年,在 25 多家不同公司的 200 多个 ASP.NET 应用程序上进行了这项工作。 (不是想吹牛,只是想让你知道我从未见过这种方法的情况doesn't work.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)