Asp.Net多环境Web.config配置-Web.Debug.config Web.Release.config
2018-01-09 15:57
656 查看
我们在.net开发/发布过程中,需要根据环境的不同去修改一些琐碎的web.config配置,比如:调试的时候数据库连接的是localhost或者dev环境的DB,发布到Test环境时,需要将数据库连接改为TestDB,当项目上线时,我们又需要修改数据库连接为生产环境下的DB…
我们有可能会忘记根据环境将web.config 改为正确的配置,就算记得,但是手动改配置的时候也会很繁琐,而且出错的概率特别高,不过.net提供了一个功能,可以在项目publish的时候选择相应的环境(Debug,Release),将Web.Debug.config或者Web.Release.config中的配置替换web.config中对应的值,这样就可以在publish的时候直接生成对应环境所需的config文件。具体做法如下:
[b] 1.web.config文件内容如下[/b]
<appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add key="testKey" value="any value"/> <add key="key1" value="abc"/> </appSettings> <connectionStrings> <add name="connStr1" connectionString="template content"/> <add name="connStr2" connectionString="template content"/> <add name="connStr3" connectionString="template content"/> <add name="connStr4" connectionString="template content"/> <add name="connStr5" connectionString="template content"/> <add name="key1" connectionString="abcd"/> </connectionStrings>
2.Web.Release.config文件内容如下
<appSettings > <add key="testKey" value="test" xdt:Transform="Replace" xdt:Locator="Match(key)"/> </appSettings> <connectionStrings xdt:Transform="Replace"> <add name="connStr1" connectionString="release1"/> <add name="connStr2" connectionString="release2"/> <add name="connStr3" connectionString="release3"/> <add name="connStr4" connectionString="release4"/> <add name="connStr5" connectionString="release5" /> <add name="some_string_else" connectionString="release else"/> <add name="key1" connectionString="release1213"/> </connectionStrings>
3.Publish后的web.config文件为:
<appSettings> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add key="testKey" value="TestConfig test value" /> <add key="key1" value="abc" /> </appSettings> <connectionStrings> <add name="connStr1" connectionString="release1" /> <add name="connStr2" connectionString="release2" /> <add name="connStr3" connectionString="release3" /> <add name="connStr4" connectionString="release4" /> <add name="connStr5" connectionString="release5" /> <add name="some_string_else" connectionString="release else" /> <add name="key1" connectionString="release1213" /> </connectionStrings>
[b]结论:[/b]
1)如果只替换某一行配置,请参考2中Web.Release.config的appSettings配置节点
2)如果是替换某个section,参考2中connectionStrings配置节点
3)如果将
<appSettings > <add key="testKey" value="test" xdt:Transform="Replace" xdt:Locator="Match(key)"/> </appSettings>
改为:
<appSettings > <add key="testKey" value="test" xdt:Transform="Replace"/> </appSettings>
则生成的web.config为:
<appSettings> <!--<add key="webpages:Version" value="3.0.0.0" /> (被替换了)--> <add key="testKey" value="TestConfig test value" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add key="testKey" value="any value" /> <add key="key1" value="abc" /> </appSettings>
4)cd到project所在路径
msbuild/p:DeployOnBuild=True /p:CreatePackageOnPublish=True /p:Configuration=Release
就可以使用Web.Release.config publish项目了
没有配置路径,publish后的文件目录在 project目录\obj\Release\Package\PackageTmp
打开web.config可以看到已经使用了Web.Release.config文件的配置
相关文章推荐
- ASP.NET 多环境下配置文件web.config的灵活配置
- ASP.NET 多环境下配置文件web.config的灵活配置
- asp.net中web.config配置节点大全详解
- ASP.Net 2.0的Web.config配置和读取
- 认识ASP.NET配置文件Web.config
- ASP.NET配置文件Web.config 详细解释
- ASP.NET中Web.Config配置文件详解与应用
- ASP.NET 2.0加密Web.config 配置文件
- Asp.net Web.Config - 配置元素 httpCookies
- 认识ASP.NET配置文件Web.config (选择自 CQP 的 Blog )
- asp.net 下web.config中配置数据库连接
- 认识ASP.NET配置文件Web.config
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
- ASP.NET web.config配置大全
- asp.net Session在web.config中的三种配置方式——详解
- ASP.NET-ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- asp.net项目中通过Web.config配置文件及文件夹的访问权限---forms
- asp.net Web.config 在不同版本的IIS配置的IHttpHandler的访问路径,以及经典模式和集成模式不同的配置
- 如何在ASP.NET的web.config配置文件中添加MIME类型
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法