microsoft / terminal

The new Windows Terminal and the original Windows console host, all in the same place!
MIT License
95.64k stars 8.32k forks source link

Freshly cloning repository seems to create invalid configurations mappings for OpenConsole.sln #14634

Open marcelwgn opened 1 year ago

marcelwgn commented 1 year ago

Windows Terminal version

main branch

Windows build number

10.0.22621.0

Other Software

Microsoft Visual Studio Enterprise 2022 Version 17.4.0 VisualStudio.17.Release/17.4.0+33103.184 Microsoft .NET Framework Version 4.8.09032

Installed Version: Enterprise

Visual C++ 2022 00476-80000-00000-AA320 Microsoft Visual C++ 2022

ASP.NET and Web Tools 17.4.326.54890 ASP.NET and Web Tools

Azure App Service Tools v3.0.0 17.4.326.54890 Azure App Service Tools v3.0.0

Azure Functions and Web Jobs Tools 17.4.326.54890 Azure Functions and Web Jobs Tools

C# Tools 4.4.0-3.22518.13+7856a68c109b22de70e07580018fec601e944f46 C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Common Azure Tools 1.10 Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.

GitHub Copilot 1.55.0.0 (v1.55.0.0@a9e44cd78) GitHub Copilot is an AI pair programmer that helps you write code faster and with less work.

GitHub Copilot Agent 1.55.7117 (v1.55.0)

IndentRainbowPackage Extension 1.0 IndentRainbowPackage Visual Studio Extension Detailed Info

Microsoft Azure Tools for Visual Studio 2.9 Support for Azure Cloud Services projects

Microsoft JVM Debugger 1.0 Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

NuGet Package Manager 6.4.0 NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/

Razor (ASP.NET Core) 17.0.0.2246202+61cc048d36a3fc9246d2f04625988b19a18ab8f0 Provides languages services for ASP.NET Core Razor.

SQL Server Data Tools 17.0.62207.28050 Microsoft SQL Server Data Tools

Syntax Visualizer 1.0 An extension for visualizing Roslyn SyntaxTrees.

Test Adapter for Boost.Test 1.0 Enables Visual Studio's testing tools with unit tests written for Boost.Test. The use terms and Third Party Notices are available in the extension installation directory.

Test Adapter for Google Test 1.0 Enables Visual Studio's testing tools with unit tests written for Google Test. The use terms and Third Party Notices are available in the extension installation directory.

TypeScript Tools 17.0.10921.2001 TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools 4.4.0-3.22518.13+7856a68c109b22de70e07580018fec601e944f46 Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual F# Tools 17.4.0-beta.22512.4+525d5109e389341bb90b144c24e2ad1ceec91e7b Microsoft Visual F# Tools

Visual Studio Inline Suggestions 2.2.2268.4192 Ghost text API for Visual Studio inline suggestions

Visual Studio IntelliCode 2.2 AI-assisted development for Visual Studio.

Steps to reproduce

  1. Clone the repository, for example using GitHub CLI: gh repo clone microsoft/terminal
  2. Open the folder in Powershell
  3. Run the steps to setup code formatting:
    Import-Module .\tools\OpenConsole.psm1
    Set-MsBuildDevEnvironment
    Get-Format
  4. Type ./OpenConsole.sln to open the solution in visual studio
  5. Get a warning at the top of visual studio: Screenshot of warning banner for invalid configuration mappings for the solution

Expected Behavior

The configuration mappings should be correct.

Selecting the cascadia package and trying to run it should work instead of showing the following error: Screenshot of error because the cascadia package cannot be deployed

Actual Behavior

There should be no configuration mapping warnings. Ideally, the "Any CPU" architecture should not be the default.

zadjii-msft commented 1 year ago

Is it even possible to set the default configuration for a sln? I was under the impression it always defaults to the first alphabetically, which is why it defaults to AnyCpu, despite the interesting projects being native.

I suppose, if we picked x64 as the default, there'd be someone out there stuck on x86 that's upset about that, but x64 sure does seem like a more reasonable default.

marcelwgn commented 1 year ago

Yeah unfortunately VS sorts them alphabetically. But is Any CPU actually needed for anything or could we remove that so the default actually makes sense for the project?

zadjii-msft commented 1 year ago

Alas, I believe it's used for the WPF control (and a couple test helpers). My C#-fu isn't strong, but I think those projects need to remain AnyCPU...

marcelwgn commented 1 year ago

Fwiw, I changed the target for the single project that has an Any CPU configuration when choosing x64 as the solution configuration to x64 too and everything seemed to work fine. And as far as my C# knowledge goes it should also work (WinUI 3 apps also do that IIRC).