天津工程信息网,seo网站关键词优化方式,嘉兴网站制作案例,专门做汽车内饰的网站注意#xff1a;本功能在.Net Core中已经不可用#xff0c;暂时需手动修改web.config中的信息#xff0c;或者将其设置在appsettings.XXX.json中#xff0c;然后再使用web.config中的环境变量来制定使用的具体appsettings文件。 转自#xff1a;https://www.cnblogs.com/h…注意本功能在.Net Core中已经不可用暂时需手动修改web.config中的信息或者将其设置在appsettings.XXX.json中然后再使用web.config中的环境变量来制定使用的具体appsettings文件。 转自https://www.cnblogs.com/hugogoos/p/6426887.html 调试发布Asp.net程序的时候开发环境和发布环境的Web.Config往往不同比如connectionstring等。如果常常有调试发布的需求就需要常常修改web.config文件这往往是一件非常麻烦的事情。 Web.Config Transformation能够在不同的发布环境下产生不同的web.config文件非常方便和实用。 在新建的Web项目中有个默认的web.config, 还可以定义格式为web.[name].config文件, 这个配置文件定义的规则, 在发布的时候, 会对web.config文件进行修改。 默认项目中, 会创建Web.Debug.config和Web.Release.config文件分别对应于Debug和Release环境。 假如我们要常常发布到测试服务器上测试服务器和开发时候的connectionstring是不同的看看如何使用Web.Config Transformation来解决这个问题。 1首先添加Test配置 菜单Build-Configuration Manager, 就能看到如下的配置窗口, 添加一个新的配置Test. 也可以从这而进入添加 2添加Test config Transformation文件 在web.confg上点击右键Add Config Transform, VS就会为刚刚新建的Test配置新增Transformation文件 Web.Test.config 3. 修改Web.Test.config文件 下面的Web.Test.config中能够替换web.config中的connectionstring, 关键是这一段 这段代码要释放出来的。 add nameMyDB connectionStringData SourceTestSQLServer;Initial CatalogMyTestDB;Integrated SecurityTrue xdt:TransformReplace xdt:LocatorMatch(name)/ xdt:TransformReplace, 指的是用来做替换操作 xdt:LocatorMatch(name), 指的是匹配规则这里是匹配name 意思是用Web.Test.config中的这个配置节用来替换web.config中name为MyDB的配置 4. 检查发布的结果 选择在Test配置下publish网站你能看到最终的web.config文件已经实现了替换connection string. 到这里已经就完成了多环境发布配置问题了而不需要每次发布都要修改配置。 这只是解决了发布时的问题细心的同学应该发现我上面还提到了调试。 其实有时候为了还原bug可能要链接不同的环境进行测试怎么样可以在程序编译的时候就进行选择不同的配置呢 首先找到当前项目 用记事本打开拉到最下面 加入红框中的这段话就可以了。 先看看原始的配置 web.config的配置为 web.debug.config的配置为 web.Test.config的配置为 这时只要选择 选择重新生成解决方案 选择替换web.config配置就会被替换为web.test.config中的配置了如下图web.config的配置 connectionString的值替换为Test中的配置了。 Target NameBeforeBuildTransformXml SourceWeb.Debug.config TransformWeb.$(Configuration).config DestinationWeb.config //Target 这句话的意思就是以Web.Debug.config里面的配置为模板生产配置存放到web.config里面 如下图在Debug新加一个键值 在选择Test重新生成一次 发现多了一个Debug配置的Key. 其实在编译时支持改变配置文件会有副作用的可能会对版本控制有影响比如你刚改了web.config然后你用了一个debug的配置去编译你的web.debug.config就会自动覆盖web.config然后你之前的修改就没了。比较理想的方式是需要一个第三方的web.base.config所有的环境配置文件例如web.debug.config都基于web.base.config去修改就是以web.base.config为模板web.config成为修改后的目标文件本身是只读的不允许修改只允许生成同时也不签入到版本库。 常用语法 参考博客 http://www.cnblogs.com/worksguo/archive/2009/08/29/1556307.html 1 locator属性 下面有个表来详细列举locator的语法 1Match; 这里你需要就是在你直接匹配的属性名。 connectionStrings
add nameNorthwind connectionStringconnection string detailproviderNameSystem.Data.SqlClientxdt:TransformReplacexdt:LocatorMatch(name) /
/connectionStrings Engine会再你的Web.config中找到匹配name为Norhwind的就用上面的配置文件图替换。 2Condition 基于XPath,在Locator中应用有逻辑性的判断表达式。 connectionStrings
add nameNorthwindconnectionStringconnection string detailproviderNameSystem.Data.SqlClientxdt:TransformReplacexdt:LocatorCondition(name’Northwind or providerName System.Data.SqlClient) /
/connectionStrings 上面就是Name属性匹配‘Norhwind’的或providerName匹配System.Data.SqlClient的配置文件节点都会被替换。 3XPath 这个就是直接写XPath,http://www.w3.org/TR/xpath,这里是XPath的标准 location pathc:\MySite\Admin
system.web xdt:TransformReplace xdt:LocatorXPath(//system.web)/system.web
location 这里你会发现这里可以写一些列的表达式。 2 Transform 属性 1 Replace 表示所有匹配的节点都是替换 assemblies xdt:TransformReplace
add assemblySystem.Core, Version3.5.0.0, Cultureneutral, PublicKeyTokenB77A5C561934E089 /
/assemblies 其实这里描述文件时web.release.config将要替换的文件时Web.config . (2) Remove 删除第一匹配的元素。 assemblies xdt:TransformRemove
/assemblies (3)RemoveAll 删除所有匹配的元素 connectionStrings
add xdt:TransformRemoveAll/
/connectionStrings 4Insert 插入从父节点中插入authorization中插入deny users* / authorization
deny users* xdt:TransformInsert/
/authorization 5SetAttributes 直接设置Attributes compilation batchfalsexdt:TransformSetAttributes(batch)
/compilation (6)RemoveAttributes 删除出Attributes compilation xdt:TransformRemoveAttributes(debug,batch)
/compilation (7)InsertAfter (XPath) 通过匹配 XPath的表达式的找到节点并子节点后面插入 XML authorization
deny usersAName xdt:TransformInsertAfter(/configuration/system.web/authorization/ allow[rolesAdmins]) /
/authorization 8InsertBefore (XPath) 通过匹配 XPath的表达式的找到节点并子节点前面插入 XML authorization
allow roles Admins xdt:TransformInsertBefore(/configuration/system.web/authorization/ deny[users*]) /
/authorization 9XSLT (filePath) 可以在外部定义 XSLT文件来替换Web.cofig文件。 appSettings xdt:TransformXSLT(V:\MyProject\appSettings.xslt)
/appSettings 转载于:https://www.cnblogs.com/ceci/p/9814396.html