Terminal: Move the solution to VS2019 and v142 toolset

Created on 8 May 2019  Â·  36Comments  Â·  Source: microsoft/terminal

As mentioned in README, (also related to #534)

If you're running VS2019, you'll also need to install the "v141 Toolset" and "Visual C++ ATL for x86 and x64"

But actually v141 Toolset is not required in VS2019. The following are the configurations of my VS2019 and I can build the solution successfully.

C++ Desktop development
image

UWP development
image

Individual components
image

To build the solution in VS2019, you need to have:

  • Windows 10 version 1903
  • Windows 10 SDK (10.0.18362.0)
  • VS2019 with C++ Desktop and UWP development workloads, as shown in the above screenshots

And retarget the solution to v142 platform and the latest Windows SDK.

Area-Build Issue-Task Product-Conhost Product-Terminal Resolution-Fix-Committed

Most helpful comment

git clone https://github.com/microsoft/Terminal.git
cd Terminal
git submodule init
git submodule update
nuget restore OpenConsole.sln
msbuild /p:Configuration=Release;AppxBundle=Always;AppxBundlePlatforms="x64" /p:Platform=x64 /p:PlatformToolset=v142 /p:TargetPlatformVersion=10.0.18362.0 /p:PreferredToolArchitecture=x64 OpenConsole.sln

All 36 comments

git clone https://github.com/microsoft/Terminal.git
cd Terminal
git submodule init
git submodule update
nuget restore OpenConsole.sln
msbuild /p:Configuration=Release;AppxBundle=Always;AppxBundlePlatforms="x64" /p:Platform=x64 /p:PlatformToolset=v142 /p:TargetPlatformVersion=10.0.18362.0 /p:PreferredToolArchitecture=x64 OpenConsole.sln

Consider the README instructions as minimal build environment requirements. And v142 > v141.

Might be, but it's still very misleading. If you have VS 2019, you don't need the v141 tools, because it should install either v141 or v142 by default anyway. My first impression was also that I'd have to install those, too.

@chunliu consider renaming this issue to "Move to VS2019 and v142 toolset" to be more directed at what is proposed.

@fcharlie Did you run in Command Prompt for VS or cmd?

@fcharlie Did you run in Command Prompt for VS or cmd?

If you run tools/razzle.cmd before what @fcharlie runs you can do it in cmd and not need the 'for VS' one (basically sets all the paths just in case)

@timheuer if the source solution is moved to VS2019 and v142, people with VS2017 could have problem to build it as v142 toolset might not be installed on VS2017.

I think the proper way to address the building issue of VS2019 is to keep the source solution targeting on VS2017 and v141 toolset, but include the proper instructions for VS2019 and v142 toolset in README. The team can retarget the source solution when they don't need to support VS2017 anymore.

@jongio I tried it with VS2019 command prompt and it is working fine. You need to include the path .\dep\nuget\ for nuget command.

git clone https://github.com/microsoft/Terminal.git
cd Terminal
git submodule init
git submodule update
nuget restore OpenConsole.sln
msbuild /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v142 /p:TargetPlatformVersion=10.0.18362.0 /p:PreferredToolArchitecture=x64 OpenConsole.sln

this worked, but how do I deploy? OpenConsole.exe starts old console

@snooopcatt My notebook is too old, I have not tried how to package and deploy it on the command line.

@snooopcatt the easiest way is to package or deploy it with Visual Studio.

@snooopcatt there is a PowerShell script in build/scripts/Create-AppxBundle.ps1. I didn't try it, but maybe you can use it to package the app from command line.

图片
I have thousands of "error MIDL2003: [msg]redefinition [context]".

I 'm using VS 2019, v142 and SDK 10.0.18362

I can build it using SDK 10.0.17663 and v142

git clone https://github.com/microsoft/Terminal.git
cd Terminal
git submodule init
git submodule update
nuget restore OpenConsole.sln
msbuild /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v142 /p:TargetPlatformVersion=10.0.18362.0 /p:PreferredToolArchitecture=x64 OpenConsole.sln

this worked, but how do I deploy? OpenConsole.exe starts old console

Don't you need to press CTRL+T to start a new tab?

I have a error MIDL2011 [msg]unresolved type declaration [context]: Windows.UI.Xaml.Markup.IXamlMetadataProvider [ RuntimeClass 'TerminalApp.XamlMetaDataProvider' ] TerminalApp F:\GitHub\Terminal\src\cascadia\TerminalApp\x64\Release\XamlMetaDataProvider.idl 6
image

@YYYGH and @12101111 Did you retarget the solution to the latest Windows SDK and v142 platform in Visual Studio?

@YYYGH and @12101111 Did you retarget the solution to the latest Windows SDK and v142 platform in Visual Studio?

thank you! I renew the solution config and is build success.
image
but can't run WindowsTerminal.exe, is no reaction.
windows 10 version: 1803

@YYYGH to run it, you need Windows 10 1903 with Developer mode on. Then you can right click the solution in VS and choose Deploy Solution.

@YYYGH to run it, you need Windows 10 1903 with Developer mode on. Then you can right click the solution in VS and choose Deploy Solution.

Thanks very much!

git clone https://github.com/microsoft/Terminal.git
cd Terminal
git submodule init
git submodule update
nuget restore OpenConsole.sln
msbuild /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v142 /p:TargetPlatformVersion=10.0.18362.0 /p:PreferredToolArchitecture=x64 OpenConsole.sln

Thanks!

I'm not able to deploy the WindowsTerminal. I'm getting the following error telling me that the deployment target should be running on 10.0.18362.0 or higher
image
Though, in the project settings, the target SDK is 10.0.17763
image

And I'm sure that my Windows is running that version.
image

I'm not sure where is the error coming from!

@Backer-Sultan The error message is correct. It's not just an SDK thing (the "target" you select). It's also a functionality thing. You'll need Windows 10 version 1903 (i.e. the May 2019 update) for this to be deployable and functional.

@Backer-Sultan The error message is correct. It's not just an SDK thing (the "target" you select). It's also a functionality thing. You'll need Windows 10 version 1903 (i.e. the May 2019 update) for this to be deployable and functional.

Thank you for the clarification! The May 2019 update is still not available for me for some reason. I will try to manually install it.

@Backer-Sultan As far as I know it's only on MSDN so far, not yet on Windows Update (think that will follow some time within the next 2 or 3 weeks).

Install newer version of Windows 10 SDK.
In your case you need to install 10.0.18362.0 or try insider version. Next retarget project/solution and try to build it.

--

An outsider, the BaRRaKudaRain

-----Original Message-----
From: "Backer Sultan" notifications@github.com
Sent: ‎5/‎12/‎2019 12:41 PM
To: "microsoft/Terminal" Terminal@noreply.github.com
Cc: "Subscribed" subscribed@noreply.github.com
Subject: Re: [microsoft/Terminal] README should include guidance for buildingthe solution with VS2019 and v142 toolset (#565)

I'm not able to deploy the WindowsTerminal. I'm getting the following error telling me that the deployment target should be running on 10.0.18362.0 or higher

Though, in the project setting, the target SDK is 10.0.17763

And I'm sure that my Windows is running that version.

I'm not sure where is the error coming from!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Get the image of Windows 10 1903 from [scrubbed]

You should probably not download your operating systems from strange websites lying in ponds distributing swords. Link scrubbed.

Please don't share dodgy advice and strange binaries in this issue tracker.

Hi, can anyone give me any pointers please. I'm using VS2019 and everything is building within VS2019 nicely and I can click deploy and I get no errors. When I try to run the app from an elevated command prompt using:

1, razzle.cmd
2, bcz
3, opencon.cmd

Everything runs fine, no errors, but it launches the old console when I ran the batch file. If I press CtrlT I just get ctrl characters sent to the console. What am I missing, I'm not seeing any errors just 3 warnings.

I have the latest SDK installed. Nuget packages installed fine. I've ran the 2 git submodules commands.

I've tried using MSBuild as detailed above also,, all looks good. Just 3 warnings, but still no joy.

I'm currently a Windows 10 insider (slow build), fully up to date with patches etc....

thanks

After few hours of struggle I used @fcharlie method i reduced number of warnings to 3:

**Build succeeded.

"C:\Users\ksawe\source\repos\Terminal\OpenConsole.sln" (default target) (1) ->
"C:\Users\ksawe\source\repos\Terminal\src\cascadia\WindowsTerminal\WindowsTerminal.vcxproj.metaproj" (default target) (47) ->
"C:\Users\ksawe\source\repos\Terminal\src\cascadia\TerminalApp\TerminalApp.vcxproj.metaproj" (default target) (48) ->
"C:\Users\ksawe\source\repos\Terminal\src\cascadia\TerminalApp\TerminalApp.vcxproj" (default target) (49) ->
(Link target) ->
XamlTypeInfo.g.obj : warning LNK4197: export 'DllGetActivationFactory' specified multiple times; using first specification [C:\Users\ksawe\source\repos\Terminal\src\cascadia\Ter minalApp\TerminalApp.vcxproj]

"C:\Users\ksawe\source\repos\Terminal\OpenConsole.sln" (default target) (1) ->
"C:\Users\ksawe\source\repos\Terminal\src\cascadia\WindowsTerminal\WindowsTerminal.vcxproj.metaproj" (default target) (47) ->
"C:\Users\ksawe\source\repos\Terminal\src\cascadia\WindowsTerminal\WindowsTerminal.vcxproj" (default target) (51) ->
WindowsTerminal.manifest : manifest authoring warning 81010002: Unrecognized Element "maxversiontested" in namespace "urn:schemas-microsoft-com:compatibility.v1". [C:\Users\ksaw e\source\repos\Terminal\src\cascadia\WindowsTerminal\WindowsTerminal.vcxproj]

"C:\Users\ksawe\source\repos\Terminal\OpenConsole.sln" (default target) (1) ->
"C:\Users\ksawe\source\repos\Terminal\pkg\appx\OpenConsolePackage.wapproj" (default target) (63) ->
(_ConvertItems target) ->
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\DesktopBridge\Microsoft.DesktopBridge.targets(413,5): warning : The project 'OpenConsolePackage.w approj' has both an EntryPointExe property and one or more application references. The generated package will use the entry point specified in the EntryPointExe property. [C:\User s\ksawe\source\repos\Terminal\pkg\appx\OpenConsolePackage.wapproj]

3 Warning(s)
0 Error(s)

Time Elapsed 00:16:55.30**

I'm using VS2019 and lates Fast Ring build (Version 10.0.18895.1000). What should I do next?

@ksawerykarwacki I think you can temporarily ignore the warnings.

@thenecroscope after you deploy the solution, you should see Windows Terminal (Preview) in Start menu. You can launch the terminal from there.

@ksawerykarwacki I switched to building from VS after those warnings and everything builded and started. One misleading thing was lack of tabs which were hidden by default.

Here on github under issues is the best place for feature requests, bugs, etc.
Keyboard shortcuts will be remappable soon and you can find and change them in the profiles.json #748

git clone https://github.com/microsoft/Terminal.git
cd Terminal
git submodule init
git submodule update
nuget restore OpenConsole.sln
msbuild /p:Configuration=Release;AppxBundle=Always;AppxBundlePlatforms="x64" /p:Platform=x64 /p:PlatformToolset=v142 /p:TargetPlatformVersion=10.0.18362.0 /p:PreferredToolArchitecture=x64 OpenConsole.sln

I have to add /p:OutputPath=<project directory>\bin to mitigate some error.

Current issues delaying completion of this:

  • The internal build lab required for signing packages does not yet support Visual Studio 2019, 14.2, nor the 1903 SDK (10.0.18362).

    • Mail has been sent to the lab onboarding team asking for support and an ETA

  • The alternative of using a multi-phase build (use public Hosted 2019 pool for build, use internal pool for signing) is a possibility, but...

    • We would need to have something that sets up the versioning resources for us. This is currently done by an internal-only pool support task. We would need to identify and implement a public task to set up the version during the compilation phase on the Hosted 2019 pool and then send the artifacts to the internal 2017 pool for signing dispatch and symbol registration

  • A final alternative recommendation was given to us by the lab build team: try to nuget-fetch the build tools required onto the 2017 machine.

    • I tried this and it sat for 6+ minutes going nowhere and I presume it will time out. Reliability/performance of this is too bad for me to consider further.

  • I will upload a draft PR with the version number changes. It works fine in VS2019 with the version number changes. Also, as of my tests today thanks to the .vsconfig file, VS2019 can build it just fine (after resolving dependencies automatically/installing them). So can VS2017.

More stuff we're stuck on:

  • Hosted agents don't have the 18362 SDK installed yet. I've linked the discussion on adding them and related PRs from the Azure Agents repository in the PR #1012.

I have thousands of "error MIDL2003: [msg]redefinition [context]".
I 'm using VS 2019, v142 and SDK 10.0.18362
I can build it using SDK 10.0.17663 and v142

@12101111 I hit this. Doing Clean Solution and building again made it go away.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

NickITGuy picture NickITGuy  Â·  3Comments

warpdesign picture warpdesign  Â·  3Comments

xmm1989218 picture xmm1989218  Â·  3Comments

zadjii-msft picture zadjii-msft  Â·  3Comments

mrmlnc picture mrmlnc  Â·  3Comments