New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

DNN 9: Compiling Platform using 9.0.1 Source Package

While building Persona Bar in DNN Platform 9.0, we wanted to have minimal code changes in the core. We felt we could build Persona Bar as an add to the core. Therefore, we decided to keep all the Persona Bar bits in a separate source repository. This kept great separation of source, though it created confusion around compilation. 

The goal of this blog is to document steps to compile DNN Platform 9.0.1 in it's entirety, including the Persona Bar and the Edit Bar bits.

Platform Repositories

We have the following source code repositories:

  1. Dnn.Platform - this contains the core DNN Platform.
  2. Dnn.AdminExperience.Library  - this contains the base Persona Bar Library.
  3. Dnn.AdminExperience.Extensions - this contains all the Persona Bar extensions such as Users, Roles, Scheduler, etc.
  4. Dnn.EditBar - this contains the Edit Bar
  5. Dnn.React.Common - the common ReactJS components which are used by the Persona Bar extensions to provide consistent look and feel across extensions.

Compiling using Source Package

download source package

In this blog, we will talk about compiling from the source package only. We will discuss compiling by cloning repo in a separate blog. Let's download the source package from

Do not download the "Source code (zip)" or "Source code (tar.gz)". These two files are automatically created by Gihub.


 Let's take a quick look at the prerequisites prior to going any further:

  1. IIS 7+.
  2. SQL Server 2008 R2+.
  3. VS2015+ (Community Edition Supported).
  4. .Net Framework 3.5. This is needed for few modules.
  5. .Net Framework 4.5+.
  6. Internet access to automatically download nuget packages from
You will need .Net framework 3.5 also, as some of the modules still depend on it.

Extract Source Zip 

Extracted source package

It's best to extract the into a folder with smaller name, e.g. c:\dnnsource. Longer folder name may result in max folder / file name limitations during compilation. Given the large number of files, it may take a good couple of minutes to extract. The extracted folder will have 4 sub-folders:

  1. Platform - The Core DNN Platform
  2. PB.Lib - Persona Bar Library
  3. PB.Ext - Persona Bar Extensions
  4. Edit Bar - Edit Bar

Empty Install\Module folder 

Initial state if Install folder

Very soon we will go int each of these sub-folders and compile them one by one. The output of each of them will go under Platform\Website\Install\Module folder. Prior to compilation, this folder will have one PlaceHolder.txt file at the beginning.

Compile Solutions in RELEASE mode 

Let's open the following solutions in Visual Studio and compile in RELEASE mode. Please don't try msbuild, you may run into issue, best to open Visual Studio IDE and click on Build Solution.

  1. Platform\DNN_Platform.sln
  2. PB.Lib\src\Dnn.PersonaBar.Library.sln
  3. PB.Ext\src\Dnn.PersonaBar.Extensions.sln
  4. EditBar\src\Dnn.EditBar.sln

Lots of Zip Files under Install\Module folder

Several files in Install folder after compile

After the compilation in RELEASE mode, you should have total of 49 files in that folder. If you see fewer files, then ensure you did compile in RELEASE mode and that there were no errors. Warnings can be ignored.

Site Setup

  1. Under IIS, configure a site and point to the full path corresponding to Platform\Website folder, e.g. C:\dnnsource\Platform\Website in my example.
  2. Ensure that the user running the app pool has read and write permission to this folder.
  3. Start the site.
  4. DNN Install Wizard should show up shortly.
  5. Create a new database in SQL Server and provide it's name and credentials to the wizard.
  6. Wait for site to finish installation.
  7. If something doesn't work, then please look at errors here: Platform\Website\Portals\_default\Logs
  8. Login as username: host and password: dnnhost (or whatever you typed during installation).
  9. The Admin Experience panel slides out on the left.
  10. Create pages, users, content, etc.

IIS Mapping

Point IIS to your website folder. IIS Settings

Installation Wizard

Make sure you are providing the right database information here

Installation Wizard

Installation Progress

You should see the installation progressing. It usually takes a minute or two to finish.

Installation Progress

Persona Bar after Installation

If all goes well, then you should see the Persona Bar. Enjoy!

Persona Bar

  • Published:


Daniel Valadas
Hello Ash, how about cloning the Dnn.Platform repository, compiling bugs and submitting pull requests. If I follow the instructions in the wiki at I have quite a few missing projects in "Admin Modules" that are referenced in the "DNN_PlatformNoTests.sln" solution. If I remove those projects from the solution and try to build it, then I am missing the DotNetNuke.Web.Deprecated project. I went in and added it. I could built in release mode with success but if I try to build in release mode then I get a lot of missing files errors such as Dnn.Platform\Website\admin\Menus\ModuleActions\ModuleActions.ascx.cs basically all the .ascs don't have their matching .ascx.cs file in that admin folder... Any clue on how to properly build for the repository?

Thanks in advance.
Daniel Valadas Tuesday, March 14, 2017 11:35 PM (link)
Terry Harrison
Does anyone know where there are similar docs for setting up 9.3.1?
Terry Harrison Friday, May 31, 2019 9:26 AM (link)
Daniel Valadas
A lot has changed regarding the code organization in the 9.x.x series and what is explained in the post is no longer valid. We are working on publishing how to build for dnn 9.4 and that should be in the github readme of the repository.
Daniel Valadas Friday, May 31, 2019 5:54 PM (link)

Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out