您的位置:首页 > 其它

为Debug和Release分别设置Web.config

2017-01-06 13:17 1061 查看
需求:在开发asp.NET应用程序时,往往想在debug和release环境下使用不同的配置,而web.config文件却只有一个

解决方案:可以在原来的web.config中写下debug环境下的配置,然后在web.release.config中写下release环境下特有的配置。常见情况写法举例如下:

1.替换某节点的某属性值,使用“SetAttributes”转换将更改 “connectionString”的值,仅在“Match”定位器查找到属性为“name”的值为“MyDB”时使用此节点的“connectionString”的值。其他不用改变的属性值无需填写。

<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>


 

2.替换整个节点,“Replace”转换将替换web.config 文件的整个 <customErrors> 节。 请注意,由于在 <system.web> 节点下仅有一个 customErrors 节,因此不需要使用“xdt:Locator”特性。

<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>


3.删除某个节点的某个属性,使用RemoveAttributes。删除compilation节点的debug这个属性。

<compilation xdt:Transform="RemoveAttributes(debug)" />


以上经过测试可用。

总结:通过在web.release.config或web.debug.config中按指定的格式查找和替换节点内容,可以实现web.config按生成环境的不同生成不同的版本,方便调试和发布。
http://www.cnblogs.com/aspnethot/articles/4172087.html


I:当建立Web项目后,默认生成的web.debug.config与Web.Release.config的作用介绍

1.为了更加清晰地介绍这个功能!我将会在下面建立一个空的Web应用程序项目去演示这一个功能的用意!所以接下来的第一步就是去建立好这个WEB应用程序项目.

首先我们打开VS2010,新建WEB应用程序项目.如下图


当我们建立好了一个空的Web项目后,在VS解决方案资源管理器里面将会看到非常干净的文件结构!
 

在这里大家看到~默认情况下相比Visual Studio 2008会多出两个文件,它们分别是:

Web.Debug.config及Web.Release.config

顾名思义,根据它们的命名我可以推测到他们分别用于在[调试]模式, 及[发行]模式下时的web.config替换工作!


II:为什么要使用web.config发布文件替换?它将会带来什么样的好处?

平常我们在开发的时候都是将数据库连接字符串设置为专用于开发的数据库服务器!而当我们把产品做好了以后,在发布的过程中往往需要把连接字符传由原来的用于开发的数据库改为生产数据库,在这里当版本在频繁地发布时,这个工作就需要重复好几次了!

另外当然你可以另写一个发布用的副本去替换掉开发时用的版本!而在这里我将会给大家介绍VS2010内置的web.config发布文件替换功能!

此功能相对灵活而且很弹性.

首先,你要了解的是程序的发布为什么会分[调试]模式,与[发行]模式!在选择[发行]模式时,代码会被内部作优化处理.从而使得文件相比[发布]模式之下体积更小,运行速度更快!因为少插入了一些调试符.

下面将会大家介绍怎样选择编译模式

右键解决方案 - 属性





好了,到这里我们已经学会如何设置编译版本了!下面将开始介绍web.config发布文件替换功能


III:使用web.config发布文件替换语法

好了,上了两节基础回顾!这儿应该真刀真枪回到主题了!

当你选择Debug编译模式发布时,自然而然IDE会去检测Web.Debug.config内的转换标记符

而在选择Release编译模式发布时,同理!

打开web.config



我们加好了连接字符串设置后,接下来我们建个测试页面

 

代码修改为



执行效果 (注意相对路径噢 test.ashx)



在这文章里我选择的是[Debug]编译模式!

然后我们修改web.Debug.config



从上图可以看到我使用了文件里默认导入的命名空间xdt.

修改了以后接下来进行发布





我这里选择的是文件系统,这种发布方式最后可以把发布出来的文件夹打包成.rar或者另外制作安装程序!

然后我们打开E:\Builder看最后的web.config生成情况



好了~在这里你已经知道如果替换连接字符串了~但是你可能会用到更复杂的功能~这里我提供一个MSDN的在线说明文档地址

http://msdn.microsoft.com/zh-cn/library/dd465326.aspx 介绍 XML-Document-Transform 的语法



注意: web.config发布替换的功能不能替换<configuration /> 楼主千辛辛万苦苦般地去进行尝试,最后还是以失败告终!

最后附上本文章的项目源代码!

以下的代码里面已经添加了一些文中没有的功能!有需要的朋友可以下载运行一次逐个了解

另外需要用到XPath语法的!原理也差不多

本文中的项目源代码 下载地址



顶0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: