Ale*_*yev 189 asp.net configuration web-config visual-studio
我需要在ASP.NET应用程序中使用不同的数据库连接字符串和SMTP服务器地址,具体取决于它是在开发环境还是生产环境中运行.
应用程序通过WebConfigurationManager.AppSettings属性从Web.config文件中读取设置.
我使用Build/Publish命令通过FTP将应用程序部署到生产服务器,然后用正确的方法手动替换远程Web.config.
有可能以某种方式简化部署过程吗?谢谢!
Pie*_*ant 155
在Visual Studio 2010及更高版本中,您现在可以根据构建配置将转换应用于web.config.
创建web.config时,您可以在解决方案资源管理器中展开该文件,您将看到两个文件:
它们包含可用于的转换代码
有关详细信息,请参阅MSDN上的Web应用程序项目部署的Web.config转换语法.
尽管官方不支持,也可以将相同类型的转换应用于非Web应用程序app.config文件.请参阅Phil Bolduc博客,了解如何修改项目文件以向msbuild添加新任务.
这是对Visual Studio Uservoice的长期保留请求.
Visual Studio 2010及更高版本的扩展," SlowCheetah "可用于处理为任何配置文件创建转换.从Visual Studio 2017.3开始,SlowCheetah已集成到IDE中,代码库由Microsoft管理.这个新版本也支持JSON转换.
Jas*_*omb 80
<appSettings>web.config中的标记支持一个文件属性,该属性将使用自己的一组键/值加载外部配置.这些将覆盖您在web.config中的任何设置或添加到它们.
我们通过在安装时修改web.config并使用与安装站点的环境相匹配的文件属性来利用此功能.我们通过安装程序开关来完成此操作.
例如;
<appSettings file=".\EnvironmentSpecificConfigurations\dev.config">
<appSettings file=".\EnvironmentSpecificConfigurations\qa.config">
<appSettings file=".\EnvironmentSpecificConfigurations\production.config">
Run Code Online (Sandbox Code Playgroud)
注意:
har*_*rpo 12
我也想知道.这有助于我解决问题
<connectionStrings configSource="connectionStrings.config"/>
然后我保留一个connectionStrings.config以及一个"{host} connectionStrings.config".这仍然是一个问题,但如果您对两个环境中不同的部分执行此操作,则可以部署和版本化相同的web.config.
(而且我不使用VS,顺便说一句.)
我使用NAnt构建脚本部署到我的不同环境.我根据它们被部署到的位置通过XPath修改我的配置文件,然后使用Beyond Compare自动将它们放入该环境中.
设置一两分钟,但您只需要执行一次.然后批处理文件接管我去另外一杯咖啡.:)
这是我在其上发现的一篇文章.
在一个拥有4个环境(开发,测试,分段和生产)的项目中,我们开发了一个系统,其中应用程序根据部署到的计算机名称选择适当的配置。
这对我们有用,因为:
在这种情况下,它对我们来说效果很好,但可能不会在所有地方都起作用。