{"id":3574,"date":"2009-06-16T13:05:28","date_gmt":"2009-06-16T13:05:28","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/2009\/06\/16\/updates-to-ftp-publishing-in-visual-studio-2010\/"},"modified":"2009-06-16T13:05:28","modified_gmt":"2009-06-16T13:05:28","slug":"updates-to-ftp-publishing-in-visual-studio-2010","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/updates-to-ftp-publishing-in-visual-studio-2010\/","title":{"rendered":"Updates to FTP publishing in Visual Studio 2010"},"content":{"rendered":"<p>With VS2010, we introduced \u201cweb deployment tool\u201d as the new publish method; at the same time, FTP publish is still available and supported in VS2010. In web application project system, because we centralized main deployment workflow, so some new features usually introducd at the same time with \u201cweb deployment tool\u201d is also available to FTP publish. This includes a most important one \u201cweb.config transformation\u201d. You can refer <a href=\"http:\/\/blogs.msdn.com\/webdevtools\/archive\/2009\/05\/04\/web-deployment-web-config-transformation.aspx\">Vishal\u2019s post<\/a> for more detail of how to author transformation files. In this post I will use a simple case to just show how the transformation is wired even you still use publish methods like FTP or plain file system copy. <\/p>\n<p>1. Create a new web application project<\/p>\n<p>2. Expand the \u201cweb.config\u201d node (If you create a Visual Basic project, enable \u201cshow all files\u201d in the solution explorer), you will see two extra transformation files, \u201cWeb.Debug.Config\u201d and \u201cWeb.Release.Config\u201d. Note, if you would like to use your existing web application project, you can open it and right click the web.config node in the solution explorer and invoke the menu of \u201cAdd Config Transform\u201d. That will create transformation files for each build configuration.)<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/16\/2019\/02\/image_2.png\"><img decoding=\"async\" style=\"border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2009\/06\/image_thumb-1.png\" width=\"158\" height=\"127\" \/><\/a> <\/p>\n<p>3. As the \u201cWeb.Release.Config\u201d template has the transformation action defined already to remove the \u201cDebug\u201d attribute for the compilation tag in the web.config file, let us switch the solution build configuration to \u201cRelease\u201d (through menu of \u201cBuild\u201d-&gt;\u201dConfiguration Manager\u2026\u201d) and use it.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/16\/2019\/02\/image_4.png\"><img decoding=\"async\" style=\"border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2009\/06\/image_thumb_1.png\" width=\"507\" height=\"196\" \/><\/a> <\/p>\n<p>4. Invoke the \u201cPublish\u201d to get the publish dialog opened. Create a profile and select method of \u201cFTP\u201d (you can use publish method of \u201cFile System\u201d if you don\u2019t have a FTP site to publish to, and want to try out with a disk path). Fill in the target location path, click \u201cPublish\u201d and wait for it is done. You can open destination site and check out the web.config, and you will see the \u201cDebug\u201d attribute is removed. <\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/16\/2019\/02\/image_6.png\"><img decoding=\"async\" style=\"border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2009\/06\/image_thumb_2.png\" width=\"352\" height=\"456\" \/><\/a> <\/p>\n<p>Hope it helps. Also as revealed in the project property tab of \u201cPackage\/Publish\u201d, there is a new setting of \u201cExclude Generated Debug Symbols\u201d you can configure as well<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/16\/2019\/02\/image_8.png\"><img decoding=\"async\" style=\"border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2009\/06\/image_thumb_3.png\" width=\"482\" height=\"171\" \/><\/a> <\/p>\n<p>Yugang Wang | Software Design Engineer | Visual Studio Web Developer<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With VS2010, we introduced \u201cweb deployment tool\u201d as the new publish method; at the same time, FTP publish is still available and supported in VS2010. In web application project system, because we centralized main deployment workflow, so some new features usually introducd at the same time with \u201cweb deployment tool\u201d is also available to FTP [&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":[31,7343,7323,7324],"class_list":["post-3574","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet","tag-asp-net","tag-publish","tag-visual-studio-2010","tag-vs10"],"acf":[],"blog_post_summary":"<p>With VS2010, we introduced \u201cweb deployment tool\u201d as the new publish method; at the same time, FTP publish is still available and supported in VS2010. In web application project system, because we centralized main deployment workflow, so some new features usually introducd at the same time with \u201cweb deployment tool\u201d is also available to FTP [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/3574","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=3574"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/3574\/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=3574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=3574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=3574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}