Below you will find pages that utilize the taxonomy term “Web.Config Transformation”
Posts
SlowCheetah - XML Transforms extension
Web.Config Transformation 功能在我們有多個環境需要部署時很方便,但預設只支援 Web.config 的轉換,且發佈時才會做轉換的動作,開發上總是有些不便。
要對 Web.config 以外的設定檔案做轉換,或是要在建置時做轉換,可以參考 Web.Config Transformation - Transform on build 這篇,修改專案檔讓 Microsoft.WebApplication.targets 幫我們做設定檔的轉換。但這樣的處理方式轉換檔需要自行手動加上去,設定起來是有點費工。
若是使用 SlowCheetah 這個 Visual Studio 擴充套件相較起來就簡單了許多,可以很輕易的為設定檔加上建置時轉換。
{% img /images/posts/SlowCheetah/1.png %}
SlowCheetah 可直接透過 Extension Manager 進行安裝。
{% img /images/posts/SlowCheetah/2.png %}
{% img /images/posts/SlowCheetah/3.png %}
{% img /images/posts/SlowCheetah/4.png %}
{% img /images/posts/SlowCheetah/5.png %}
使用時只要在方案總管中找到欲加入建置轉換的設定檔,按下滑鼠右鍵,在彈出的滑鼠右鍵選單中選取 Add Transform 滑鼠右鍵選單選項。
{% img /images/posts/SlowCheetah/6.png %}
在彈出的確認視窗中按下 Yes 按鈕繼續。
{% img /images/posts/SlowCheetah/7.png %}
對應的轉換檔即會幫我們產生。
{% img /images/posts/SlowCheetah/8.png %}
專案檔中也會做對應的修改,會加入 SlowCheetah 自己的 Targets 去做轉換,而非使用現成的 Microsoft.
read morePosts
Web.config Transformation Tester
Web.config Transformation Tester 是可用來測試 Web.Config Transformation 的線上服務,若要學習 Web.Config Transformation 或是要驗證轉換這是個不錯的服務。
使用上也很簡單,將要做轉換的 Web.Config 檔內容放入 Web.Config 區塊。
{% img /images/posts/ConfigTransformationTester/1.png %}
轉換的設定檔內容放入 Transform (eg. Web.Debug.config) 區塊。
{% img /images/posts/ConfigTransformationTester/2.png %}
接著按下 Transform 按鈕,轉換後的結果即會出現在 Result 區塊。
{% img /images/posts/ConfigTransformationTester/3.png %}
Link Web.config Transformation Tester
read morePosts
Web.Config Transformation - Transform on build
Web.Config Transformation 功能在我們有多個環境需要部署時很方便,但預設只會在發佈時做對應的轉換,因此當我們需要針對特定環境下去排解問題時,就不能很直接的切換 Profile 去做偵錯的動作。
若要在建置時也做 Web.Config 的轉換,讓除錯時更為方便。我們可以複製 Web.Config,降之更名為 Web.Base.config,然後卸載並開啟專案檔,將 Web.Base.config 設定為 DependentUpon Web.Config。
... <Content Include="Web.Base.config"> <DependentUpon>Web.config</DependentUpon> </Content> ... 然後在專案檔中設定建置前用 Microsoft.WebApplication.targets 將 Web.Base.config 套用 Web.$(Configuration).config 的轉換設定產出實際我們需要的 Web.config。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio11.0\WebApplications\Microsoft.WebApplication.targets" /> <Target Name="BeforeBuild"> <TransformXml Source="Web.Base.config" Transform="Web.$(Configuration).config" Destination="Web.config" /> </Target> 設定好存檔,將專案檔載回方案檔,以後建置時即會運行轉換的動作。
除了建置時驅動轉換外,若是想要將 Web.Config Transformation 功能套用到 Web.Config 外的 Config 檔,也可以使用該方法如法泡製。
read morePosts
Web.Config Transformation - Add Config Transform File
當我們建立一個 Web 專案,Visual Studio 預設就會幫我們產生好 Debug 與 Release 這兩個轉換檔。但隨著專案的進行,專案中的 Build Configuration 可能會隨之增加。此時我們需要為新建的建置組態建立對應的 Config Transform 檔。
建立新的 Config Transform 檔很簡單,只要在方案總管中找到 Web.config 檔,在檔案上按下滑鼠右鍵。在彈出的滑鼠右鍵快顯選單中,選取 Add Config Transform 選單選項。Visual Studio 即會比對 Build Configuration 去產生缺少的 Config Transform 檔案。
{% img /images/posts/AddConfigTransform/1.png %}
read morePosts
Web.Config Transformation - Transform Web.config When Deploying a Web Application Project
Web.Config Transformation 允許開發人員依照特定的語法設定部署時 Web.Config 所要做的轉換動作,像是移除除錯設定、或是連線字串。該功能在 Visual Studio 2012 開始整進 Visual Studio,若要在 Visual Studio 2010 使用,需為 Visual Studio 加裝 Visual Studio Web Publish Update 套件。
在使用上,當我們用 Visual Studio 建立一個 Web 專案,預設就會幫我們建好 Debug 跟 Release 最基本的轉換設定。以預設的設定來說,Debug 沒作任何的轉換動作,而 Release 會將 Web.Config 中除錯的設定拔除。
... <system.web> <compilation xdt:Transform="RemoveAttributes(debug)" /> ... 我們可以參閱 Release 的轉換設定檔,設定檔內的註解會稍稍提示使用的方式,以及說明文件的位置,確實參閱後做些基本的設定應該都不成問題。
<?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"> <!-- 在下面的範例中,"SetAttributes" 轉換只會在 "Match" 定位程式找到 值為 "MyDB" 的屬性 "name" 時,才將 "connectionString" 的值變 更為使用 "ReleaseSQLServer"。 <connectionStrings> <add name="MyDB" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings> --> <system.
read more