Nick Allport
Oct 5, 2009
(1 votes)

Publishing EPiServer CMS 5 From Visual Studio 2008

As an experienced Visual Studio developer I have been really impressed with how easy it has been to make rapid progress whilst developing our own EPiServer site. After attending the E2550 - Developing with EPiServer CMS 5 course in London recently I felt empowered to get stuck in and found few problems putting in place my own templates and site structures. However, when I decided to publish my work before I went too far – just so I knew I wasn’t wasting my time – I found that, in my experience, Deploying from Development to Public sites wasn’t quite as easy as Daniel van den Tempel described and required a few extra steps. So this post is meant to cover those extra steps and complement Daniel’s original post.

In order to help others who might find themselves in the same situation as me I have decided to document the process that I followed in order to publish from my EPiServer SDK site to a working public site.


First of all some details about my setup.


  • EPiServer Project 5.2.375.236 (EPiServer CMS 5 R2 SP2)
  • Visual Studio 2008 Service Pack 1
  • Windows Vista 64 Enterprise Edition

Production Environment

  • Windows Server 2003
  • .Net 3.5
  • IIS 6.0 – Ensure you have enabled the ASP.Net extensions to work
  • SQL Server 2005 SP1

Setting Up The Production Environment

  1. Run the setup.exe which installs the Deployment Centre and install only the core files.
  2. Once the Deployment Centre installation is complete choose to install a Site and SQL Database. I installed my database on a separate server.

    N.B. The location you choose to install your site to, i.e. c:\episerver\sites\mysite needs to be shared so that you can also publish to it from Visual Studio.
    Following your installation browsing to your site should give you the following.
  3. You will also need to add your license.config to the folder where your site has been installed to at this point.

Publishing Your Site

I found it easier to tackle this in two stages once I eventually figured it out. Firstly to export/import my content from development to production and the secondly to publish my templates and make changes to the web.config on the server.

Export / Import Data

The first thing to ensure at this point is that you belong to the local administrators group on your server.

  1. Login in to the admin area of your development site and choose Admin – Tools – Export Data. From there select all of the options relevant to you. For ‘Select part of structure’ I have chosen my Start page so that I get all of the content beneath it exported. 
    The next screen tells you how many pages have been exported etc and you can download and save the export to your chosen area ready for import to your production site.
  2. Login in to the admin area of your production site and choose Admin – Tools – Import Data. The admin area is available at //admin">//admin">http://<yourdomain>/<yourui>/admin. Browse for your export file and select the page destination for your import. I selected the root of my site so that all of my content I exported will be under the root.
  3. Now switch to edit mode and all of your content should be listed under the root of the site matching your development site. Make a note of the new ID of your start page as you will need to set it in the web.config after publishing from Visual Studio.

Publish From Visual Studio

Now your content has been moved from the development site to the production site you need to publish your own templates so that content will work. At the moment none of your site will work as it is looking for page types that don’t exist.

Publishing is now exactly the same as the normal process for deploying a website from Visual Studio.

  1. Build your site in Release mode and choose Build – Publish and browse to the file share you deployed your site to on the server earlier.image
  2. You will now need to locate the web.config in your production site and update the PageStartID to match the one you made a note of after Export / Import.

Your production site should now be fully working just as your development site. From what I can see the web.config will always need updating manually at the production site whenever you publish from Visual Studio. Assuming you’ve made any web.config changes that is.

Oct 05, 2009


Helen Hopkinson
Helen Hopkinson Sep 21, 2010 10:32 AM

Great blog post Nick. Thanks.
- Helen

Please login to comment.
Latest blogs
Fixing Optimizely Content Syncing/Caching Issues on the DXP pre CMS.Core 12.13.0

Hi all, With our recent deployments to the DXP for .NET 6 projects (one a new build and one an upgrade) our clients had raised issues where there...

Scott Reed | Mar 23, 2023

Handle hostnames, schedule jobs and role access when synchronizing content

The Environment Synchronizer module helps you to set your environment into a known state after synchronizing databases between environments. In thi...

Ove Lartelius | Mar 23, 2023 | Syndicated blog

4 tips and tricks for Hangfire on Optimizely CMS

Here are four useful tricks I always apply to any site where I use Hangfire (code included).

Stefan Holm Olsen | Mar 21, 2023 | Syndicated blog

The new LinkItem property in Optimizely CMS, and why it matters

In the past, we have used different tricks to achieve this. Now, the LinkItem property is finally built-in in Optimizely CMS 12!

Tomas Hensrud Gulla | Mar 20, 2023 | Syndicated blog

A day in the life of an Optimizely Developer - Vertical Slicing in CMS12

There is such a vast choice these days in how you can build a website, aside from all of the different programming languages out there, there are...

Graham Carr | Mar 20, 2023

Tag Helpers in CMS 12

Microsoft introduced the TagHelper back in the primordial soup of ASP.NET vNext which became .Net 5, then .NET Core then .Net 5 you know the drill…...

MartinOttosen | Mar 20, 2023