{"id":3654,"date":"2009-05-05T00:07:43","date_gmt":"2009-05-05T00:07:43","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/2009\/05\/05\/web-deployment-web-config-transformation\/"},"modified":"2009-05-05T00:07:43","modified_gmt":"2009-05-05T00:07:43","slug":"web-deployment-web-config-transformation","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/web-deployment-web-config-transformation\/","title":{"rendered":"Web Deployment: Web.Config Transformation"},"content":{"rendered":"<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">We have earlier discussed about Web Deployment and Web Packaging quite a bit, today I wanted to dive into web.config transformation. If you would like to check out the other topics please read through the earlier blog posts below: <\/span><\/p>\n<\/p>\n<ul type=\"disc\">\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\"><a href=\"http:\/\/vishaljoshi.blogspot.com\/2009\/02\/web-deployment-with-vs-2010-and-iis.html\"><span style=\"color: #3366aa;text-decoration: none\">Web Deployment with VS 2010 and IIS<\/span><\/a> <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\"><\/span><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\"><a href=\"http:\/\/vishaljoshi.blogspot.com\/2009\/02\/web-packaging-creating-web-package.html\"><span style=\"color: #3366aa;text-decoration: none\">Web Packaging: Creating a Web Package using VS 2010<\/span><\/a> <\/span>      \n<\/p>\n<\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\"><a href=\"http:\/\/vishaljoshi.blogspot.com\/2009\/02\/web-packaging-creating-web-packages.html\"><span style=\"color: #3366aa;text-decoration: none\">Web Packaging: Creating web packages using MSBuild<\/span><\/a>         \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\"><a href=\"http:\/\/vishaljoshi.blogspot.com\/2009\/03\/how-does-web-deployment-with-vs-10.html\"><span style=\"color: #3366aa;text-decoration: none\">How does Web Deployment with VS 10 &amp; MSDeploy Work?<\/span><\/a>         \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\"><a href=\"http:\/\/vishaljoshi.blogspot.com\/2009\/03\/web-packaging-installing-web-packages.html\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #3366aa;text-decoration: none\">Installing Web Packages using Command Line<\/span><\/a>         \n<\/p>\n<p>     <\/span><\/li>\n<\/ul>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Usually web applications go through a chain of server deployments before being finally being deployed to production environment. Some of these environments can be Developer box (Debug), QA Server, Staging\/Pre-Production, Production (Release). While transitioning between these environments various settings of the web application residing in web.config file change, some of these settings can be items like application settings, connection strings, debug flags, web services end points etc. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">VS10&rsquo;s new web.config transformation model allows you to modify your web.config file in an automated fashion during deployment of your applications to various server environments. To help command line based deployments, Web.Config transformation is implemented as an MSBuild task behind the scene hence you can simply call it even outside of deployment realm. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">I will try to go through below steps to explain web.config transformation in detail <\/span><\/p>\n<\/p>\n<\/p>\n<ol type=\"1\">\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Creating a &ldquo;Staging&rdquo; Configuration on your developer box        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Adding a &ldquo;Staging&rdquo; Web.Config Transform file to your project        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Writing simple transforms to change developer box connection string settings into &ldquo;Staging&rdquo; environment settings        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Generating a new transformed web.config file for &ldquo;Staging&rdquo; environment from command line        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Generating a new transformed web.config file for &ldquo;Staging&rdquo; environment from VS UI        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Understanding various available web.config Transforms and Locators        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Using Web.config transformation toolset for config files in sub-folders within the project        \n<\/p>\n<p>     <\/span><\/li>\n<\/ol>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;line-height: 19.2pt\"><b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Step 1: <a name=\"_Toc209364712\">Creating a &ldquo;Staging&rdquo; Configuration on your developer box<\/a> <\/span><\/b>    <\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Debug and Release build configurations are available by default within Visual Studio but if you would like to add more build configurations (for various server environments like &ldquo;Dev&rdquo;, &ldquo;QA&rdquo;, &ldquo;Staging&rdquo;, &ldquo;Production&rdquo; etc then you can do so by going to the Project menu Build &#8211;&gt; Configuration Manager&hellip; Learn more about <a href=\"http:\/\/vishaljoshi.blogspot.com\/2009\/02\/tips-tricks-managing-environment.html\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #3366aa;text-decoration: none\">creating build configurations<\/span><\/a>. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;line-height: 19.2pt\"><b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Step 2: <a name=\"_Toc209364713\">Adding a &ldquo;Staging&rdquo; Web.Config Transform file to your project<\/a> <\/span><\/b>    <\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">One of the goals while designing web.config transformation was to make sure that the original runtime web.config file does not need to be modified to ensure that there would be no performance impacts and also to make sure that the design time syntax is not mixed with runtime syntax. To support this goal the concept of Configuration specific web.config files was introduced. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">These web.config files follow a naming convention of web.<b>configuration<\/b>.config. For example the web.config files for various Visual Studio + Custom configurations will look as below: <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: 19.2pt\"><a href=\"http:\/\/lh5.ggpht.com\/_E8t3edIzcC8\/SchDIcv7GXI\/AAAAAAAAAtw\/HXJ5vkMMLIM\/s1600-h\/image%5B4%5D.png\"><img decoding=\"async\" title=\"web.config transform\" height=\"339\" alt=\"web.config transform\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2009\/05\/image_thumb5B25D.png\" width=\"387\"><\/a> <\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><a href=\"\/Users\/vijoshi\/AppData\/Local\/Temp\/WindowsLiveWriter-429641856\/supfiles239CB3DE\/configtransformdoctored25.png\"><span style=\"font-size: 12pt;color: #3366aa;font-family: 'Georgia','serif';text-decoration: none\"><\/span><\/a><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\"><\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Any new Web Application Project (WAP) created in VS10 will by default have Web.Debug.config and Web.Release.config files added to the project. If you add new configurations (e.g. &ldquo;Staging&rdquo;) or if you upgrade pre-VS10 projects to VS10 then you will have to issue a command to VS to generate the Configuration specific Transform files as needed. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">To add configuration specific transform file (e.g. Web.Staging.Config) you can right click the original web.config file and click the context menu command &ldquo;Add Config Transforms&rdquo; as shown below:<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><a href=\"http:\/\/lh3.ggpht.com\/_E8t3edIzcC8\/SchDJJJeDaI\/AAAAAAAAAt4\/TZbJaWZyi38\/s1600-h\/image%5B9%5D.png\"><img decoding=\"async\" title=\"Add Config Transforms\" height=\"299\" alt=\"Add Config Transforms\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2009\/05\/image_thumb5B55D.png\" width=\"281\"><\/a> <\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><a href=\"\/Users\/vijoshi\/AppData\/Local\/Temp\/WindowsLiveWriter-429641856\/supfiles239CB3DE\/image9.png\"><span style=\"font-size: 12pt;color: #3366aa;font-family: 'Georgia','serif';text-decoration: none\"><\/span><\/a><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\"><\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">On clicking the &ldquo;Add Config Transform&rdquo; command VS10 will detect the configurations that do not have a transform associated with them and will automatically create the missing transform files. It will not overwrite an existing transform file. If you do not want a particular configuration transform file then you can feel free to delete it off. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Note<\/span><\/b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">: In case of VB Web Application Projects the web.<b><i>configuration<\/i><\/b>.config transform files will not be visible till you enable the hidden file views as shown below:<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><a href=\"http:\/\/lh4.ggpht.com\/_E8t3edIzcC8\/SchDJtalJbI\/AAAAAAAAAuA\/A8r191dtmJs\/s1600-h\/image%5B14%5D.png\"><img decoding=\"async\" title=\"VB.net web.config Transform\" height=\"251\" alt=\"VB.net web.config Transform\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2009\/05\/image_thumb5B85D.png\" width=\"340\"><\/a> <\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><a href=\"\/Users\/vijoshi\/AppData\/Local\/Temp\/WindowsLiveWriter-429641856\/supfiles239CB3DE\/image14.png\"><span style=\"font-size: 12pt;color: #3366aa;font-family: 'Georgia','serif';text-decoration: none\"><\/span><\/a><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\"><\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">The transform files are design time files only and will not be deployed or packaged by VS10. If you are going to xCopy deploy your web application it is advised that you should explicitly leave out these files from deployment just like you do with project (.csproj\/.vbproj) or user (.user) files&hellip; <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Note<\/span><\/b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">: These transform files should not be harmful even if deployed as runtime does not use them in any fashion and additionally ASP.NET makes sure that .config files are not browsable in any way. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;line-height: 19.2pt\"><b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Step 3: <a name=\"_Toc209364714\">Writing simple transforms to change<\/a> developer box connection string settings into &ldquo;Staging&rdquo; environment settings <\/span><\/b>    <\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Web.Config Transformation Engine is a simple XML Transformation Engine which takes a source file (your project&rsquo;s original web.config file) and a transform file (e.g. web.staging.config) and produces an output file (web.config ready for staging environment). <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">The Transform file (e.g. web.staging.config ) needs to have XML Document Transform namespace registered at the root node as shown below: <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: 12pt\"><span lang=\"EN\" style=\"font-size: 10pt;color: blue;font-family: 'Courier New'\">&lt;?<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: maroon;font-family: 'Courier New'\">xml<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: black;font-family: 'Courier New'\"> <\/span><span lang=\"EN\" style=\"font-size: 10pt;color: red;font-family: 'Courier New'\">version<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: blue;font-family: 'Courier New'\">=&#8221;1.0&#8243;<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: black;font-family: 'Courier New'\">?<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: blue;font-family: 'Courier New'\">&gt;<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: black;font-family: 'Courier New'\">      <br><\/span><span lang=\"EN\" style=\"font-size: 10pt;color: blue;font-family: 'Courier New'\">&lt;<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: maroon;font-family: 'Courier New'\">configuration<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: black;font-family: 'Courier New'\"> <\/span><span lang=\"EN\" style=\"font-size: 10pt;color: red;font-family: 'Courier New'\">xmlns:xdt<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: blue;font-family: 'Courier New'\">=&#8221;http:\/\/schemas.microsoft.com\/XML-Document-Transform&#8221;&gt;<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: black;font-family: 'Courier New'\">      <br><\/span><span lang=\"EN\" style=\"font-size: 10pt;color: blue;font-family: 'Courier New'\">&lt;\/<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: maroon;font-family: 'Courier New'\">configuration<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: blue;font-family: 'Courier New'\">&gt;<\/span><span lang=\"EN\" style=\"font-size: 10pt;color: black;font-family: 'Courier New'\"> <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Note<\/span><\/b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">: The transform web.config file needs to be a well formed XML. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Inside the XML-Document-Transform namespace two new attributes are defined. These attributes are important to understand as they drive the <b>XML Transformation Engine<\/b>. <\/span><\/p>\n<\/p>\n<\/p>\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 9pt;line-height: 19.2pt\"><b><u><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">Transform <\/span><\/u><\/b><span lang=\"EN\" style=\"font-size: 12pt;color: #333333;font-family: 'Georgia','serif'\">&ndash; This attribute inside the Web.Staging.config informs the Transformation engine the way to modify web.config file for specific configuration (i.e. staging). Some examples of what Transforms can do are: <\/span><\/p>\n<\/p>\n<\/p>\n<ul type=\"disc\">\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Replacing a node        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Inserting a node        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Delete a node        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Removing Attributes        \n<\/p>\n<p>     <\/span><\/li>\n<li class=\"MsoNormal\" style=\"margin: 0in 0in 10pt;color: #333333;line-height: 19.2pt\"><span lang=\"EN\" style=\"font-size: 12pt;font-family: 'Georgia','serif'\">Setting Attributes        \n<\/p>\n<p>     <\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We have earlier discussed about Web Deployment and Web Packaging quite a bit, today I wanted to dive into web.config transformation. If you would like to check out the other topics please read through the earlier blog posts below: Web Deployment with VS 2010 and IIS Web Packaging: Creating a Web Package using VS 2010 [&hellip;]<\/p>\n","protected":false},"author":404,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[7284,7323,7319,7324,7267,7264,7268,7329,7282,7340],"class_list":["post-3654","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet","tag-vishal-r-joshi","tag-visual-studio-2010","tag-visual-web-developer","tag-vs10","tag-vwd","tag-wap","tag-web","tag-web-deployment","tag-web-config","tag-web-config-transformation"],"acf":[],"blog_post_summary":"<p>We have earlier discussed about Web Deployment and Web Packaging quite a bit, today I wanted to dive into web.config transformation. If you would like to check out the other topics please read through the earlier blog posts below: Web Deployment with VS 2010 and IIS Web Packaging: Creating a Web Package using VS 2010 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/3654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/404"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=3654"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/3654\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=3654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=3654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=3654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}