關於vs發佈項目時webconfig替換語法也是最近才學到的東西,寫這篇文章就當是做個備忘錄吧,若是能幫助別人可以學習到webconfig如何替換那就再好不過了。html
咱們新建一個MVC的項目Web.config下必定會有web.Debug.config和web.Release.config這兩個文件。如圖web
確定是他們的做用的,做用還挺大的。在發佈項目的時候咱們常常會換掉數據庫的鏈接字符串或者將調試模式去掉。這個操做不夠人性化。這兩個文件的做用就是你在發佈的時候去替換Web.Config文件中的節點。Debug模式就調用web.Debug.config,反之也是同樣的。數據庫
Web.config 文件一般包括根據應用程序的運行環境而必須不一樣的設置。 例如,在部署 Web.config 文件時,您可能必須更改數據庫鏈接字符串或禁用調試。 對於 Web 應用程序項目,ASP.NET 提供了一些工具,用於自動完成在部署這些項目時更改(轉換)Web.config 文件的過程。 對於要部署到的每一個環境,您將建立一個轉換文件,該文件僅指定原始 Web.config 文件和適用於該環境的已部署 Web.config 文件之間的差別。ide
轉換文件是一個 XML 文件,該文件指定在部署 Web.config 文件時應如何更改該文件。 轉換操做經過使用在 XML-Document-Transform 命名空間(映射到 xdt 前綴)中定義的 XML 特性來指定。 XML-Document-Transform 命名空間定義兩個特性:Locator 和 Transform。 Locator 特性指定要以某種方式更改的 Web.config 元素或一組元素。 Transform 特性指定要對 Locator 特性所查找的元素執行哪些操做。工具
<connectionStrings> <add name="conn" connectionString="數據庫鏈接字符串" providerName="System.Data.SqlClient"/> </connectionStrings>好的,咱們將他打印出來:
public class HomeController : Controller { // GET: Home public ActionResult Index() { ViewBag.str = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; return View(); } }
<?xml version="1.0" encoding="utf-8"?> <!-- 有關使用 web.config 轉換的詳細信息,請訪問 http://go.microsoft.com/fwlink/?LinkId=125889 --> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add name="conn" connectionString="線上數據庫鏈接字符串" xdt:Transform="Replace" xdt:Locator="Match(name)"/> </connectionStrings> <system.web> <compilation xdt:Transform="RemoveAttributes(debug)" /> </system.web> </configuration>
1.首先要在 XML-Document-Transform 命名空間(映射到 xdt 前綴)中定義的 XML 特性來指定,也就是節點中聲明學習
xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform2.Transform是要幹什麼,replace就是替換掉的意思。locator就是定位器的意思,就是查找元素。
xdt:Transform="Replace" xdt:Locator="Match(name)
語法挺簡單的。如今咱們來發布項目,發佈文件系統的形式以後咱們會在web.config文件中看到已經被替換了spa
咱們發現的確是整個節點都被替換了,注意的是要name區分大小寫。.net
文章有點簡單,更詳細的語法能夠看看微軟的https://msdn.microsoft.com/zh-cn/library/dd465326(VS.100).aspxdebug
做者:張林調試
標題: vs發佈項目webconfig替換語法 原文地址:http://blog.csdn.net/kebi007/article/details/60321701
轉載隨意註明出處