How to deploy the Fabriakam Call Center application with DSC

Because there is not an Update 4 version of the Keller VM using the Visual Studio 2013 Update 3 Keller VM I will show you how to upgrade Release Management to Update 4 and create a vNext deployment for the Fabriakam Call Center application.

First we have to uninstall Release Management Update 3. Log in as Brian Keller and uninstall the components in the following order:

  1. Deployer
  2. Client
  3. Server

You will get an error during the uninstall of the server just click Close the program.

Now download Update 4 of Release Management iso image from and mount the image to your VM.

Install the components in the following order:

  1. Server: password for Administrator is P2ssw0rd
  2.  Client: enter “vsalm” for Release Management service
  3. Deployer: password for Administrator is P2ssw0rd

Upgrading just Release Management to Update 4 without the rest of the system will break build.

The work around is to copy Microsoft.VisualStuio.Services.Common.dll and Microsoft.VisualStuio.Services.WebApi.dll from “C:\Program Files (x86)\Microsoft Visual Studio 12.0\Release Management\Client\bin” to “C:\Program Files\Microsoft Team Foundation Server 12.0\Tools”.  Make sure restart the build service after you copy the files.

The shortcut pinned to the Taskbar for the Release Management Client will be broken so fix it to point to the next installation of Release Management.

To use DSC to deploy your application you have to make sure your DSC script is in the drop location so let’s address that first.  Open the FabrikamFiber.CallCenter solution and add a Configuration folder to the FabrikamFiber.Web project.

This folder will contain all the DSC scripts we need to deploy our project using DSC.  Right click on the Configuration folder and select Add / New Item.  Add a new text file named “install.ps1”.  From the Solution Explorer right click “install.ps1” and select Properties.  Change the “Copy to Output Directory” to “Copy always”.  This will ensure the file ends up in the drop location.  Enter the following text into install.ps1

Configuration InstallWebSite
      WindowsFeature InstallIIS
         Name = "Web-Server"

      WindowsFeature AspNet45
         Name = "Web-Asp-Net45"

      File CopyBits
         DestinationPath = $DestinationPath
         SourcePath = $applicationPath
         Type = "Directory"
         Recurse = "True"


This is the DSC configuration that will ensure that IIS and 4.5 are installed and copy the files to the server.  The variable $DestinationPath will be defined on the component in Release Management and $applicationPath will be provided to the script from Release Management.

Now check in your changes and queue a new build disabling tests. Make sure the build passes and open Release Management.

The only way to add a new vNext server is by creating an Environment so let’s begin there.  Click “Configure Paths” then “Environments”. Using the new menu select “New vNext: Standard”.

Enter the following values:

  • Name: DSC-Dev
  • Owner: Brian Keller
  • Description: Development environment for Web Team for internal apps using DSC.

Now click the Create button under the Servers Tab.  We are going to be deploying to the VM which is named VSALM.  The DNS Name must contain the port to use to establish a PowerShell Remote connection. The default port for PowerShell Remoting is 5985.

  • Name:  VSALM
  • DNS Name: VSALM:5985
  • Owner: Brian Keller

Click Save & Close the Server dialog and click Save & Close on the Environment.  Repeat this process for each environment linking to the same machine.

Now we have to create vNext Release Path.  Click “vNext Release Paths” then New.Name:

  • Fabrikam Call Center DSC
  • Description: Release path for the call center app using DSC.

Add a stage.

  • Stage: Dev
  • Environment: DSC-Dev
  • Automated: <Checked>
  • Approver: Web Team
  • Owner: Web Team
  • Validator: Web Team
  • Approver: Brian Keller

Repeat this process for each stage of your deployment.  When you are done Save & Close the Release Path.

Now move to the “Configure Apps” tab so we can configure our vNext Components on the Components tab. From the New menu select “New vNext”.

  • Name: Fabrikam Call Center DSC
  • Builds with application: <Checked>
  • Path to package: _PublishedWebsites\FabrikamFiber.Web

Click “Configuration Variables” tab and Add a new configuration variable.

  • Name: DestinationPath
  • Type: Standard

Now Save & Close your component.

The final step is to create a vNext Release Template. Click New on the “vNext Release Templates” tab.

  • Name: Fabrikam Call Center DSC
  • Description: Call Center DSC
  • Release Path: Fabrikam Call Center DSC
  • Build definition: vsalm:8080/FabrikamFiber/Nightly Fabrikam (Dev)
  • Can Trigger a Release from a Build: <Checked>

Click Create.

Right click on Components in the Toolbox and link your component.

To build your Deployment Sequence simply drag the “Deploy Using PS/DSC” on to the Deployment Sequence. Expand the action and use the following values

  • ServerName: VSALM
  • UserName: .\Administrator
  • Password: P2ssw0rd
  • ComponentName: Fabrikam Call Center DSC
  • PSScriptPath: Configuration\install.ps1
  • SkipCaCheck: True

Leave the rest of the values empty.

Under “Custom configuration” add a new “Standard Variable” and select “DestinationPath” set the value to “c:\FabrikamRM\WebSite\DEV” (without the "").

Copy and paste the sequence to the QA stage and change the value of the DestinationPath variable to “c:\FabrikamRM\WebSite\UAT” and repeat to the Prod stage using  “c:\FabrikamRM\WebSite\PROD”.

Click Save then click “New Release”. Use the latest version of the build and click Start.

Good luck! If you have any questions feel free to ask me on Twitter @DonovanBrown

install.ps1 (438.00 bytes)

Comments are closed