How to create a setup file to install MVC .net web application? - asp.net-mvc

I have MVC2.0 web application and I need to make an exe installer to deploy the application and the DB on the customer's server.
Is there a tool in VS2010 to do this or do I have to use a 3rd party tool?

You can create deployment package, bin deploy or simply use publish option to drop files to web server.
Here are some useful links:
Bin Deployment
VS 2010 Web Deployment
Package, One click deploy
Automating Deployment with Microsoft Web Deploy

Related

Deploy ASP.NET Application while Hiding Sources

When we deploy our ASP.NET MVC application all sources, controllers, views, etc. are copied.
This is not a problem when we deploy on our server, but when we are going to deploy a copy into external servers and we don't want to share our code.
Does not exist a tool to package into libraries? .NET Core seems to deploy into DLL files, but I don't find that functionality on ASP.NET MVC.
Does not exist a tool to package into libraries?
Yes.
This is what publishing the application does - it prepares the application for deployment. When you publish, it will compile the source code and prepare only the assets your application needs to run into a deployment folder.
It compiles the source into libraries. Views are only compiled if you use the precompile views option, otherwise they are distributed as files.
Use the Publish tool to deploy to a local folder. The exact options available depend on your app type. In Solution Explorer, right-click your project and choose Publish, and then choose Folder. For more information, see Deploy to a local folder.
Tutorial: Publish your Hello World application with Visual Studio 2017
You can combine publishing with IIS Web Deploy in order to easily automate the process of deploying your web site.

Build and deploy asp.net MVC WCF application

I am fairly new to creating deployments for projects.
I have a asp.net MVC web application and WCF service layer (5 services).
Our QA team needs to get latest build packages to test the application.
At the moment we have command line build scripts which gets the latest source, build with the Visual Studio and copy those build outputs to IIS and Services folder(Services are hosted as Windows services).
What would be the recommended way to do this? We have TFS builds, but we are not using those build outputs at the moment.
What would be the recommended way to set up a deployment for these projects?
You should automate your deployment pipeline.
You can use TFS builds in conjunction with Web Deploy or with Octopus to achieve this goal.

Continous Integration with ASP.NET MVC and TFS

I have an ASP.NET MVC 3 application. This application is hosted in TFS. I have setup a build server. When a checkin happens, my code is complied and dropped in a folder on my test server. The drop folder is an IIS application folder. The goal is when a user visits http://[myTestServer]/MyProject, they should see the latest compiled version of the app. In an attempt to do this, I'm dropping files in //[myTestServer]/c$/inetpub/www/myProject/. However, I'm getting more than I bargained for.
I've noticed that the build server puts a bunch of assemblies and creates 2 directories: _PublishedWebsites and logs. _PublishedWebsites contains two directories: MyProjectName and MyProjectName_Package. From what I can tell MyProjectName contains the files that I want put in //[myTestServer]/c$/inetpub/www/myProject/. What am I doing wrong?
How do I setup it up such that when a user visits http://[myTestServer]/MyProject, they see the latest compiled version of the app?
Have a look at Microsoft's Web Deploy for deployment of Web applications and Web sites to IIS servers.
This tutorial describes in detail how to configure TFS for Web Deployment:
Configuring Team Foundation Server for Web Deployment
Creating a Team Project in TFS
Adding Content to Source Control
Configuring a TFS Build Server for Web Deployment
Creating a Build Definition That Supports Deployment
Deploying a Specific Build
Configuring Permissions for Team Build Deployment

Can I bin deploy and MVC4 for .NET 4 where I have an MVC3 app running?

I have an MVC3 app on a shared hosting server and would like to upgrade this project by creating a new MVC4 project and copying my content over. Will the required dependencies be publish when I do a file system publish of the MVC4 app, or are there GAC etc. requirements on the server? I will be using .NET 4 which I am already using fine on the hosting server.
I was able to to an MVC4 Beta bin deploy with no problem to a server with only MVC3 installed. I followed Phil Haack's guide for doing this (it was written for MVC3 but the steps are the same).
All you have to do is right-click on the project and select "Add Deployable Assemblies". This also allowed our unit test assemblies to run just fine, so there was no need to install the beta on our continuous integration server.
http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Command-line to "deploy" ASP.NET MVC project

I am using Visual Studio Team Suites to develop a ASP.NET MVC project. I can deploy the web app to my dev machine using the "deploy" item from IS. Is there a command-line tool to do this task? What I am trying to do is to setup a continuous integration server (using TeamCity Pro), so that whenever I checkin new code, I will get a new build, deploy to a remote IIS server, and then run tests on the testing server.
Thanks,
-Yi
It looks like Microsoft have such a deployment tool. Never used it myself.
Scott Hanselman has blogged about it here
MSDeploy, Microsoft's upcoming command-line deployment tool (which will be integrated into VS2010) is currently available in Beta2.
Info:
http://learn.iis.net/page.aspx/346/web-deployment-tool/
Download (x86):
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1602
Download (x64):
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1603
Also, if you have disk access to the servers you want to deploy to from the CI server and don't need to install/remove things from the GAC or tweak the IIS metabase, plain old robocopy is a great option.

Resources