Upgrade to Team Foundation Server (TFS) 2017.

This article aims to expand on the Upgrade overview and give a step by step walk-through of the upgrade to TFS 2017.There are some minor changes in the upgrade process that attempts to simplifies it.

Upgrade Source Minimum Requirement: Your TFS databases must be at least at the TFS 2012 RTM level to jump to TFS 2017.
Refer our older upgrade walkthrough to get to a supported level.

We have 2 basic upgrade ways as usual.

In-Place Upgrade (Upgrade on the same hardware/OS over existing Application Tier and Data Tier Servers)
Migration based upgrade
(Upgrade using different hardware/OS)

We also have 2 types of upgrade now (Upgrade options),

Pre-Production Upgrade (Use this to test your upgrade. This process test upgrades the databases. You can use this to simultaneously test your TFS 2017 on another hardware while continue to use your existing older TFS up)
Note: This must be done on a copy of TFS databases on a separate server. It upgrades the database to 2017 version. The intent is to test upgrade on a different server. You cannot have 2 different versions of TFS on the same server!
Production Upgrade (Once you are ready for upgrade, restore the databases again and use this mode) We have a new step-by-step article for in-place upgrade here

Note: Please use Production upgrade when you’re doing the final upgrade of production. TFS Clients caches the ID on client machines.

We also have some new system requirements may require you to upgrade hardware or software.
Here’s the basic 3. Be sure to check the article to see requirements for Visual Studio, Proxy, SharePoint etc.,

Supported server operating systems
Windows Server 2016
Windows Server 2012 R2 (Essentials, Standard, Datacenter)
Windows Server 2012 (Essentials, Standard, Datacenter)
Windows Server 2008 R2 (minimum SP1) (Standard, Enterprise, Datacenter)
Supported client operating systems
Windows 10 (Home, Professional, Enterprise)
Windows 8.1 (Basic, Professional, Enterprise)
Windows 7 (minimum SP1) (Home Premium, Professional, Enterprise, Ultimate)
Support SQL Server version
SQL Server 2016
SQL Server 2014

SQL Server Collation Settings

Permission Requirements:

The Account running the upgrade needs the following permissions.

– Local Administrator on the Application Tier.
– SysAdmin on SQL Data Tier.
–For Reporting,
Ensure you have Report Manager and Local Admin on the report server permissions.
Ensure you have ServerAdmin Privilege on the Analysis Instance.

-For SharePoint,
Ensure the account used for the upgrade is a Farm Admin.

Reporting and SharePoint – Pre-upgrade Preparation.

If your instance has SSRS Reporting and SharePoint, you need to perform additional steps before upgrading TFS. This is simpler in case of an in-place upgrade (provided SQL and SP versions are compatible with TFS 2017); There are not many changes needed.

However, if you are moving to newer version/different hardware, you need to manually set them up prior to upgrade.


Report Server Databases ( ReportServer and ReportServerTempDB) must be backed up, along with the encryption key and restored to the newer SSRS. Here, the encryption key is restored.
More info here.

Ensure ReportManager and Reports page are valid, browse-able and working, prior to the TFS Upgrade.


If you have SharePoint integration (Supported versions SP 2010 and 2013) ensure you install the Extensions for SharePoint products 2017 on all farms.

If you’re also creating a new SP farm,
- Install and Configure SP Farm.
- Install Extensions for SharePoint Products on all farms.
- Create a new web application.
- Mount the content database.
- Verify site collections are valid and reachable.

PS: The SharePoint farm must be valid and sites reachable before the upgrade. If they are skipped during the upgrade, the portal connections will break and you must manually create them, or use this

You can refer to our previous blog for Screenshots on Reporting and SharePoint configuration

Databases Restore Check:

You must have *all* Tfs_Databases (Tfs_Configuration, Tfs_Collections, Tfs_Warehouse (if you have reporting) restored to the Database Engine.

Tfs_Analysis restored to the Analysis Engine.

ReportServer and ReportServer TempDB is restored to the appropriate database engine.

SharePoint Content databases for SharePoint sites.










Install TFS 2017

Download and Install TFS 2017. On existing TFS 2013/2015 installation, this installer will uninstall TFS and install the 2017 binaries.

Once installed, it will open the Server Configuration Wizard

03 04You can always re-launch it by running the TFS Admin Console, and Click on Configure installed features.






The wizard is changed a bit to prompt you if you’re doing an upgrade/installing a new instance.

Now select the SQL Server with old the TFS Config database.

Now, we need to specify if we are doing a Pre-Production upgrade or Production Upgrade.

Selecting Pre-Production upgrade will give you the details with explanation. The wizard will also show you some best practices.


You could continue following the Wizard to complete the pre-production upgrade, as follows.


You will notice that the Application Tier has a couple of changes. You can specify the site settings and bindings directly from the wizard.

We’ve also added a Setting Group here.

Default: use the old convention (with /tfs Virtual Directory)

HTTPS and HTTP (with redirect) : Creates a self signed cert/use your existing Signed Cert for Production
HTTP Only: Configure with only HTTP (without the virtual directory)

3Or, you could go Custom
4To see these options, click on Edit Site Settings.


13 14
If your existing deployment did not have Reporting/SharePoint, the upgrade wizard will hard block on them, Like so,






If you do have reporting, the wizard will look like this,

For SharePoint, give the farm information in the SharePoint step.

Review Changes and let’s upgrade!

What’s new here?
TFS 2017 sets the default authentication to “Negotiate”.
That doesn’t mean you *have* to set up SPNs and configure Kerberos. If you don’t it will fall back to NTLM anyway.


The steps are similar for “Production Upgrade” from the Wizard perspective.

Hope this helps! We are creating a documentation on Search next.

Content: Manigandan Balachandran
Review: Romit Gulati

Comments (36)

  1. Alexey says:


    Do we need a license key in case of In-Place Upgrade over existing TFS 2015 Update 3?


    1. Hi Alexey,

      The Licensing has changed for Team Foundation Server. Please review https://www.microsoft.com/en-in/download/confirmation.aspx?id=13350

  2. Sivajothi Dharmalingam says:

    Can you specify which version of the SQL it support in SQL Server 2014? Any specific version it support or all ?
    E.G: 1.SQL Server 2014 SP1 CU2, SQL Server 2014 SP1 CU3, SQL Server 2014 SP1 CU4, SQL Server 2014 SP1 CU5, SQL Server 2014 SP2…..etc

    1. Hi,

      We only specify the minimum requirement of SQL. We do not have control over SQL CUs. So if the major version is supported, all CUs will be too.
      (Unless there’s a specific problem with a particular CU. In that case, we will update them appropriately)

  3. Artour says:

    Ohh it removed the TFS2015 and stopped my servers :/
    Please make that clear!
    I hope it will not take all day to get it back up.
    Is there a way to let TFS2015 run while i test out 2017 on same server?

    1. I was hoping this was clear “This process test upgrades the databases. You can use this to simultaneously test your TFS 2017 on another hardware while continue to use your existing older TFS up)”
      I have added a note.

  4. Sivajothi Dharmalingam says:

    Thank you. Really good information.

  5. Dave Zimmerman says:

    I don’t see any checkbox anymore for “AlwaysOn” SQL server availability in the install screens. Has that install option changed?

    1. TFS will now automatically detect AlwaysOn SQL instances. It’s recommended you give the AlwaysOn listener name while configuring.

      1. Dave Zimmerman says:

        So after the install, I added the TFS databases to the AlwaysOn availability group. Will it detect that after the fact. I noticed the TfsConfig RegisterDB command no longer recognizes the /usesqlalwayson parameter (though updated documentation still suggests it does). So basically if I check web.config and MultiSubnetFailover=True, all is good?

  6. Sivajothi Dharmalingam says:

    We are planning to migrate TFS 2013 to TFS 2017(TFS15).
    Is Release Management Server features are available in TFS 2017? or Want to install Release management server separately and configure to 2017?

    In TFS 2013 release management server want to be installed in separate server then want to connect with TFS 2013.

    1. Release Management is part of TFS from TFS 2015 update 2. It follows a different process/release definition types. It does not have the Server-Client-Deployment architecture as the older RM WPF version.

    2. Brandão says:


      I’m conducting an upgrade to TFS 2017, but part of my releases are in Release Management tool and we will migrate to Release (or vNext) after the upgrade.
      Did you succeed with your upgrade? The trigger to deploy on XAML build and RM are running after migrate to TFS 2017?

  7. Eugene says:

    We have TFS 2013 with SQL Server 2012. From your post it appears this version of SQL Server is not supported. Am I correct in understanding we’ll have to upgrade SQL Server first, then TFS?

    Thank you.

    1. Yes! You need to move the databases to SQL 2014 or 2016 first. SQL will do the database upgrade, then you can run the TFS upgrade.

      1. J says:

        It needs to be made clear in all the documentation that if you have SharePoint integrated with TFS your only option is SQL 2014. TFS does not support SharePoint 2016 only SharePoint 2010 and 2013. SharePoint 2010 requires SQL 2008 or 2012 neither of which are supported by TFS 2017. SharePoint 2013 requires SQL 2012 or 2014 of which only SQL 2014 is supported.

        1. I think it’s pretty clear if you look at the requirements page.
          “Here’s the basic 3. Be sure to check the article to see requirements for Visual Studio, Proxy, SharePoint etc.,”

  8. Greg Sullivan says:

    WIT updates – do I need to update any WITS before the upgrade? We had customized them heavily.

    1. Any customizations to WITS should carry over, but if it’s failing to find the corresponding process templates, you must configure them manually, on the upgraded server.

  9. Dennis says:

    will it be possible to actually use the pre-prod upgraded version as a test server for plugins, etc.?
    and feature upgrades in older collections?


    1. Could you please elaborate? The Pre-prod upgrade helps you test an upgrade on a different TFS machine and Prod databases restored on the Test SQL Server.
      You can use the pre-prod server (upgraded server in test) to test out plugins.

  10. Gscully03 says:

    I would like to change the attachment upload size but I’m getting ‘page not found’ error when I click ‘Invoke’ and the setting isn’t updated.
    So maybe I”m not using the right uri? localhost doesn’t work.

    1. Gscully03 says:

      Never mind I figured it out.

  11. I am preparing to do a pre-production upgrade from TFS 2013 to TFS 2017 for a client.

    I have cloned the server and renamed the database, but the second server is still pointing to the live production database and showing up as a second machine in Application Tiers in the Admin Console on both the original and cloned servers. The steps provided make it seem like running the pre-production upgrade makes it unnecessary to run PrepareClone/ChangeServerID/ReMapDbs commands on my clone before applying the upgrade, but I need to be 100% sure I won’t impact this production environment.

    If I run the “old school” PrepareClone/ChangeServerIDs/ReMapDBs commands on my clone to make sure it is pointing to my new database, can I still run the upgrade as pre-production?

    1. When you say “Cloned” the server, did you mean a VM clone? It’s not recommended. Best way to clone TFS/test upgrade is to move databases to the new SQL, running Pre-production upgrade from there.
      The Pre-Prod upgrade will run prepareclone/changeserverIDs/Remap again irrespective of whether you have changed the IDs prior.

      1. Yes, we did a VM clone and renamed the database instance.

        So when you say move the database, you don’t actually mean that (because you want to keep the production database in place), right? Do you mean restore from backup into a new db instance?

        1. Yes, a copy of production databases backed up and restored to another instance.

  12. Jeff says:

    If I do a pre-production upgrade to a new server can I then do a full production upgrade to the same server once the pre-production upgrade has been successfully verified? What are the steps for that? Delete the databases and run the configuration wizard again somehow?

    1. Yes! You’d have to unconfigure TFS (https://www.visualstudio.com/en-us/docs/setup-admin/tfs/command-line/tfsconfig-cmd#setup), remove databases, restore PROD databases and run Production upgrade.

  13. J says:

    If you are using SharePoint don’t use SQL 2016. You will be able to install or upgrade to 2016 but you will not be able to get the integration working. The requirements for SharePoint 2013 point this out but there is no mention in any of the requirements documentation for TFS 2017 where SharePoint is discussed.

  14. Tom says:


    We have technical debt in the form of many existing XAML builds for which we do not have the resources to convert to vNext any time soon, so we know we’ll need to also install Release Management server when we set up our TFS 2017 server. However, the DBAs are also moving to use only MSSQL Always-On AGs, and while the configuration instructions are clear and straightforward for configuring TFS to work with that MSSQL environment, I cannot find *any* information on how to configure the associated RM server to work with AGs, nor even whether RM is compatible. Since TFS 2015u2, there is no place in RM server configuration dialog to set the connection string for multi-subnet failover (maybe there wasn’t before then, either, but I haven’t used earlier versions).

    Can I move the ReleaseManagement db from its old non-AG MSSQL instance into a new AG MSSQL instance, point RM at the new primary replica, then afterwards manually edit the RM server connection string for multi-subnet failover (presumably while TFS has been temporarily quiesced)? And if so, where is that connection string to be found?

    Thanks in advance.

    1. Tom says:

      Hello again,

      Perhaps nobody has found a way to do this, so I’ll answer my own questions (two months later) in case it helps someone else. I’ll describe what worked for us, but we accept absolutely no responsibility for negative outcomes arising from anyone attempting to replicate our configuration of Release Management Server. Use this information at your own risk. For background, we have not yet moved to TFS 2017, but we have moved to AoAGs on MSSQL 2014.

      The short summary is that we could not get RM to work with AoAGs, but we did get it to work by treating the AoAG as a mirror. The procedure in a nutshell, assuming you already have TFS configured for an AoAG, is:

      – Make any backups you think you might need, particularly the web.config file
      – Quiesce TFS and stop RM monitor service
      – The connection string is in the file “C:\Program Files (x86)\Microsoft Visual Studio 14.0\Release Management\services\web.config”
      – Open that file in Notepad (open it as admin so that you’ll be able overwrite the file with the changes) and search for “connectionString=”
      – Change the connection string, using the old & new samples below as a guide, and your MSSQL primary & secondary replicas
      – Unquiesce TFS and start RM monitor service (or just reboot the server to be sure)
      – Check relevant event logs; test MSSQL failover; check event logs again; verify RM client connectivity and functionality
      – To roll back, follow the same pattern, but simply replace the modified web.config file with the backup you had made before proceeding

      Sample OLD connection string: “Server=TFS_DB\TFS;Initial Catalog=ReleaseManagement;Trusted_Connection=yes;Connection Timeout=15”

      Sample NEW connection string: “Server=TFS_DB1\TFS;Failover Partner=TFS_DB2\TFS;Initial Catalog=ReleaseManagement;Trusted_Connection=yes;Connection Timeout=15”

      The outcome we had from this was a few event log errors and warnings from RM, up to a half dozen of each, for a failover event. Interestingly, we only get one of each from an actual (unplanned) failover event, while we usually get four to six for a test failover event.

      Also, we discovered that the /usesqlalwayson argument to various TFS command-line tools is no longer valid (it causes commands to fail), at least as of TFS 2015u2. The MS online documentation still includes it; I provided feedback to MS via the web page several weeks ago, but the documentation remains inaccurate as of today (22 May 2017).

      Good Luck,

  15. Jason Powell says:

    If we are migrating our production databases to new hardware (app and data tiers), and run our final production upgrade with the “Production Upgrade” wizard, do we then have to manually run the remapdbs and changeserverid commands to reconcile the databases with the new hardware?

    1. When you run the final prod update, you need not run remapdbs or changeserverID. We see some confusion on this. We’re creating another article on Upgrading in Test, and using the same to upgrade and use as Prod. Stay tuned!

Skip to main content