Building the new Windows Terminal with Visual Studio 2019

I saw a tweet from Martin Woodward about the new Windows Terminal. The video looked awesome and I wanted to play with it. The only way to get your hands on it now is to build it yourself. I found my way to the GitHub repo.

There you quickly learn the requirements. First thing I had to do was install the Insider build of Windows to get to version 1903. To do this I logged into VisualStudio.com and clicked the “Visual Studio Profile” link under my avatar.

clip_image002[4]

From there I clicked the “Use your benefits” link.

clip_image004[4]

Click “Downloads” from the top menu then “Windows 10”. I filtered the product family to only show “Windows 10, version 1903”. From the list download either “Windows 10 (consumer editions), version 1903” or “Windows 10 (business editions), version 1903” depending on your version of Windows. Once downloaded mount the ISO and run the setup program.

Once you have updated your version of Windows you need to make sure you have all the required components installed in Visual Studio 2019 which are:

  • "Desktop Development with C++"
  • "Universal Windows Platform Development"
  • Windows SDK version 10.0.18362.0

The readme also calls out "v141 Toolset". I had zero luck getting the solution to build with that toolset. By default, Visual Studio 2019 installs v142. We are going to retarget the solution to v142 instead of installing v141.

With the required packages installed you are ready to clone and build the solution.

Make sure after you clone the repo you also clone the submodules using the following command:

git submodule update --init --recursive

Now open OpenConsole.sln in Visual Studio 2019. After the solution opens you will be prompted to retarget projects to v142. For the “Windows SDK Version” select “10.0.18362.0”. Leave the “Platform Toolset” set to “Upgrade to v142”. Click OK. I noticed after this process some of my projects in the solution were not upgraded.

Only the items with checks next to them were upgraded.

clip_image006[4]

Before you try and build make sure you select the correct platform to match your machine.

clip_image010[4]

If you attempt to build the solution now you will get a lot of errors.

error MSB8020: The build tools for Visual Studio 2017 (Platform Toolset = 'v141') cannot be found.
To build using the v141 build tools, please install Visual Studio 2017 build tools. Alternatively, you
may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution,
and then selecting "Retarget solution".

The error message says you can just right-click the project and select Retarget. But that just failed so I am going to do it manually. Right-click on each project under "Terminal" that had a padlock and select “Properties”. From the “General” tab change the “Platform Toolset”.

clip_image008[4]

You should be able to build the solution now. If you get an error about a missing header file right-click on the “TerminalSettings” project and build it first. Now try and build the solution again.

Right-click on the “CascadiaPackage” project and select “Set as Startup Project”. Right-click the project again and select Deploy.

Now you can run the application. Don’t be alarmed when it looks just like the normal terminal. Just press Ctrl+T to show the tabs.

clip_image012

Comments (7) -

  • Keith Howell

    5/8/2019 11:48:18 PM | Reply

    This tutorial worked wonders for me, thanks for posting! I was wondering though if you would be willing to do a follow-up tutorial showing how to add ubuntu or other shells to this terminal, as I cannot find a way to do that myself.

    • Donovan

      5/11/2019 1:34:10 AM | Reply

      Working on it now. I added Git Bash I will also work on WSL and write a post.

  • Mehmet temel

    5/10/2019 6:16:31 PM | Reply

    Hello,
    Thank u for good text. Can u share us .exe for windows 10 - 64 bit. We cant download uwp fremawork. That total size 8 gb. Turkey internet 1 mb/s.
    Regards

  • Allen J George

    5/13/2019 11:09:00 PM | Reply

    Hi Donovan -
    I'm really excited to try this. I am running the skip ahead insider preview 1H20 build and followed the instructions above exactly, but they aren't working. I changed all of the projects included in the solution to use that specific version of the platform toolkit and it still isn't working. I've tried from a fresh start using VS2017 Enterprise and 2019 Preview and neither are working. Is anyone MS running this build that might be able to share how we can get this build working on the 1H20 skip-ahead insider preview? I also see they made some pretty significant changes to the code on the github repo earlier today.

  • Sagnik Mitra

    6/4/2019 5:43:13 PM | Reply

    Hi Donovan,
    Since I'm new to this  visual studio development, your guide really helped me to pull this off and build the terminal. I have successfully built and deployed the package but I'm unable to launch the app. I don't know if it's supposed to launch automatically or not.

    This was displayed after deployment:
    **       Deployment complete (0:00:24.958). Full package name: "WindowsTerminalDev_0.0.1.0_x64__8wekyb3d8bbwe"      **

    Please tell me where am I supposed to look for it?

  • Robert Brown

    8/21/2020 3:53:39 AM | Reply

    Donovan,
      Suppose I've got the settings.json for Windows Terminal working the way I want it
    to work.  Suppose I now want to provide my setting.json to a bunch of other people.
    Does each user have to change all the 'guid' numbers?

Add comment

Loading