Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable support for Visual Studio 2022 #79

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

LukaszMendakiewicz
Copy link

@LukaszMendakiewicz LukaszMendakiewicz commented Jun 17, 2021

This approach follows the guidelines from https://github.com/microsoft/VSExtensibility/wiki.

Notable changes:

  • Dropped support for Visual Studio 2015 *.
  • Now builds in Visual Studio 2019.
  • Upgraded to .NET Framework 4.7.2.
  • Upgraded to C++ toolset v142.
  • Moved all dependencies to PackageReference-style (maintaining the same version where possible).
  • Upgraded to newer style VSSDK (from NuGet packages).
  • Moved common files to a shared project and added "head" projects for pre-17 and 17-and-on versions of VSIX.
  • Added temporary code analysis suppression for some newly-enabled (with the SDK update) VSSDK and VSTHRD checkers.

* Supporting Visual Studio 2015 and Visual Studio 2022 in one solution does not appear to be easy, so would incur higher maintenance cost. I propose that limiting the support to the three most recent major versions is acceptable.

Minor changes:

  • EnumerableExtensions.ToHashSet is now superseded with the built-in support (.NET Framework 4.7.2 and newer).
  • Updated test mocks for Dialog with test-provided JoinableTaskContext.
  • Updated the test project to deploy the necessary binding redirects.

All tests pass.

Verified basic functionality (Search, Source Explorer) on:

  • Visual Studio 2017 (15.9.36)
  • Visual Studio 2019 (31409.95.d16.11)
  • Visual Studio 2022 (31409.368.d17.0)

This approach follows the guidelines from https://github.com/microsoft/VSExtensibility/wiki.

Notable changes:
- Dropped support for Visual Studio 2015 *.
- Now builds in Visual Studio 2019.
- Upgraded to .NET Framework 4.7.2.
- Upgraded to C++ toolset v142.
- Moved all dependencies to PackageReference-style (maintaining the same version where possible).
- Upgraded to newer style VSSDK (from NuGet packages).
- Moved common files to a shared project and added "head" projects for pre-17 and 17-and-on versions of VSIX.
- Added temporary code analysis suppression for some newly-enabled (with the SDK update) VSSDK and VSTHRD checkers.

* Supporting Visual Studio 2015 *and* Visual Studio 2022 in one solution does not appear to be easy, so would incur higher maintenance cost. I propose that limiting the support to the three most recent major versions is acceptable.

Minor changes:
- EnumerableExtensions.ToHashSet is now superseded with the built-in support (.NET Framework 4.7.2 and newer).
- Updated test mocks for Dialog with test-provided JoinableTaskContext.
- Updated the test project to deploy the necessary binding redirects.

All tests pass.

Verified basic functionality (Search, Source Explorer) on:
- Visual Studio 2017 (15.9.36)
- Visual Studio 2019 (31409.95.d16.11)
- Visual Studio 2022 (31409.368.d17.0)
@google-cla
Copy link

google-cla bot commented Jun 17, 2021

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

@LukaszMendakiewicz
Copy link
Author

@googlebot I signed it!

@moswald
Copy link

moswald commented Jul 20, 2021

@rpaquay You're the only contributor with any activity in the past year. Is this project effectively dead? I find the full text engine search to be just about the most important VS extension I have, and I would love to see it work with VS2022.

@moswald
Copy link

moswald commented Jul 21, 2021

@paulirish I hate to drag you into this thread, but your avatar was the first one I clicked on in the greater Chromium project. Can you answer my question above as to whether this project is effectively dead? It's a great extension just for the search capability alone.

@rpaquay
Copy link
Contributor

rpaquay commented Jul 21, 2021

Hi there @moswald,

The project is not dead, I just have not had time to look at this PR and I thought VS 2022 was not released yet, so I did not think this was urgent.

Also, big thank you too @LukaszMendakiewicz for creating this PR.

tldr: I will take a look at this shortly.

@LukaszMendakiewicz
Copy link
Author

I thought VS 2022 was not released yet

Visual Studio 2022 is currently available in Preview: https://visualstudio.microsoft.com/vs/preview/vs2022/

@moswald
Copy link

moswald commented Jul 21, 2021

@rpaquay Thanks! Again, sorry to be a bother! I'm keen to put the vs2022 preview through its paces and this extension is super useful to me.

@yuyoyuppe
Copy link

That would be great to merge :)

@rpaquay
Copy link
Contributor

rpaquay commented Sep 1, 2021

I ran into a few issues with building this on VS 2019, which is why there is a delay. I will try to get back to it soon.

@rpaquay rpaquay mentioned this pull request Oct 21, 2021
@DaveSenn
Copy link

DaveSenn commented Nov 8, 2021

Today VS22 has officially launched. Can't wait to install VS Chromium. Without it VS is just not complete.

@@ -10,19 +10,19 @@
<RootNamespace>VsChromium.DkmIntegration</RootNamespace>
<AssemblyName>VsChromium.DkmIntegration</AssemblyName>
<FileAlignment>512</FileAlignment>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This property is unneeded in PackageReference world.

@ongamex
Copy link

ongamex commented Nov 18, 2021

I can't wait for this to get merged!

@sergio-nsk
Copy link

sergio-nsk commented Nov 19, 2021

Why is approving this PR postponed?

@rpaquay
Copy link
Contributor

rpaquay commented Nov 19, 2021

I applied the PR to a side branch, and created a pre-release for it: https://github.com/chromium/vs-chromium/releases/tag/v0.9.38.

I have not had time to do a lot of testing, but it seems to work on VS 2022 Final.

Please open bugs if you see issues.

The reason this has been delayed is that I am having issues running tests in VS2022, and I am still getting errors during build that I don't understand, even though these errors don't seem to prevent building a working VSIX file.

@sergio-nsk
Copy link

Unfortunatley this VIX does not see VS2022.

image

@rpaquay
Copy link
Contributor

rpaquay commented Nov 19, 2021

Darn, wrong file. I created another release for vs2022 (https://github.com/chromium/vs-chromium/releases/tag/v0.9.39).

@sergio-nsk
Copy link

Now it is working, but the names are swapped. VsChromium-0.9.39.vsix is for VS2022, VsChromium-Pre-VS2022-0.9.39.vsix is for VS2019.

@atorstling-mojang
Copy link

I'm getting #80 with the VS2022 release version one, and when I try to run the host process manually (by double-clicking) I get an array out of bounds exception:

image

image

Details
Microsoft Visual Studio Enterprise 2022
Version 17.0.1
VisualStudio.17.Release/17.0.1+31912.275
Microsoft .NET Framework
Version 4.8.04161

Installed Version: Enterprise

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

ASP.NET and Web Tools 2019   17.0.789.48259
ASP.NET and Web Tools 2019

Azure App Service Tools v3.0.0   17.0.789.48259
Azure App Service Tools v3.0.0

C# Tools   4.0.1-1.21561.4+add472bbed002fcea9232e89793d0762cc71c5cf
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.

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

Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C++ Wizards   1.0
Microsoft Visual C++ Wizards

Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package

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

ProjectServicesPackage Extension   1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

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.1001.2002
TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools   4.0.1-1.21561.4+add472bbed002fcea9232e89793d0762cc71c5cf
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.

Visual C++ for Cross Platform Mobile Development (Android)   17.0.31822.380
Visual C++ for Cross Platform Mobile Development (Android)

Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

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

Visual Studio Tools for CMake   1.0
Visual Studio Tools for CMake

VsChromium   0.9.39
Collection of tools to help contributing code to the Chromium project.

@petternilsen
Copy link

I'm getting #80 with the VS2022 release version one, and when I try to run the host process manually (by double-clicking) I get an array out of bounds exception:

That has been an issue with previous versions too and it shows after VS installer restarts it after an update. It's not a big deal and shouldn't be a blocker considering it's not a new issue.

@atorstling-mojang
Copy link

Thank you @petternilsen . I couldn't get it to resolve, but not it's suddenly working again. Sorry for the noise.

@LukaszMendakiewicz
Copy link
Author

Is there anything I can do to help get this PR accepted?

@rpaquay
Copy link
Contributor

rpaquay commented Jan 11, 2022

@LukaszMendakiewicz

No, I already merged it in a separate branch (https://github.com/chromium/vs-chromium/commits/pr79-add-vs2022-support) then made a couple of fixes related to package versions (see 213dba2)

My plan it to merge that branch to master at some point.

@yuriy-odonnell-epic
Copy link

Hey, is there anything still preventing this from getting merged into master and making an official binary release?

@savage309
Copy link

The pre-release build works. But any plans for merging this to the main branch?

@sergio-nsk
Copy link

The pre-release build works. But any plans for merging this to the main branch?

No, it does not work well in VS 2022. The settings for visualising code issues, that break the chromium code style, are not working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.