TFS: Web deploy: Pros and Cons of using it.

Web Deploy: Pros

It is a great tool to zip your web artifacts and publish to a remote web server in both admin and non admin mode. That is, you could publish your artifacts to a remote server as an admin or as a non admin. For non admin users, it delegate rights to window management service on a remote server to carry out the work related to deployment.
It can easily be integrated with any build & deployment orchestration tool like Bamboo, Microsoft Build, Jenkins, etc.
It is also customizable. That is you could customize application package generation and deployment process if you are familiar with MSBuild framework.

Web Deploy Cons and how to address these cons

1) Build once and deploy to many different environments

It doesn’t provide out of box feature to create application packages to be deployable to many environments. Understand this… If you test and certify something in one environment, then same binaries and files with same version you would like to rolled out to all the other environments. Recompilation every time for different environments is simply an overhead.

A Way Address this issue

TFS: Web Deploy: Build Once and Deploy To Many Environments


2) Files deletion on remote servers during deployment

If you are doing a non-administrative deployment and would like to delete certain unwanted files generated during the execution of your web application under your web site folder then the website deployment would fail.

A Way Address this issue

Administrative deployment is one of option.

3) Non web application deployment

If you would like to deploy your windows services or just the files, this is not a tool that will have out of box feature to do that.

A Way Address this issue

Make a reference to web deployment framework as below in non-web deployment project and also do rest of the configuration as mentioned in “Build once and deployment to many environment”
 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
 <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
 <WinPublishCustomizeTargetFile Condition="'$(WinPublishCustomizeTargetFile)'==''">$(projectdir)\$(ProjectName).wpp.targets</WinPublishCustomizeTargetFile>
 <Import Project="$(WinPublishCustomizeTargetFile)" />

Also for a use case where you would like to deploy a windows service to a remote machine follow below steps.

cheap lasix online Step1: Stop the windows service on a remote machine with below command line.
Psservice to stop the remote service

where can i order propecia online Step2: Do the web application deployment.
Msdeploy to deploy the web application.

Step3: Start the windows service remotely.
Psservice to start the service.

Leave a Reply

Your email address will not be published. Required fields are marked *