microsoft / ConcordExtensibilitySamples

Visual Studio Debug Engine Extensibility Samples
Other
122 stars 50 forks source link

Update Iris sample to target .NET Core and support Linux #65

Closed gregg-miskelly closed 3 years ago

gregg-miskelly commented 3 years ago

This PR makes changes to the Iris EE sample so that the compiler will produce code that runs on .NET Core, and so that the EE can be run on either .NET Framework or .NET Core.

A big thank you to @ivanpovazan from Raincode who did the initial work for this.

Changes:

  1. The projects were converted to .NET Core style "sdk" projects.
  2. The work of packaging the EE into a .vsix was split out into a separate project. This is because .NET Core SDK net standard library projects don't have debug options to control if the .NET Framework or .NET Core debug engine is used. So I left the vsix project in a separate classic project instead of the SDK style.
  3. Removed assumption that Console APIs are in CoreLib
  4. Updated code for spawning ilasm to work with .NET Core:
    • Don't assume that it is always next to CoreLib
    • Use '-' instead of '/' with switch names as '/' doesn't work on Linux
    • Redirect standard error/out to make sure it doesn't get written back to vsdbg's std error/out on Linux
    • Pay attention to the exit code
  5. Fixed Iris/Programs to run the programs on .NET Core.
  6. Add a fake project to Iris\Programs to provide a project that can easily be opened in VS to make it easy to debug and allow primitive build integration. To do this I also fixed the exit code propagation in build.cmd for compile errors.
  7. Add new xplat-packaging project to take care of packaging up files into a directory for supporting xplat scenarios.
  8. Converted FrontEndTest to nunit
gregg-miskelly commented 3 years ago

@ivanpovazon if you have a chance, please take a look as well.

ivanpovazan commented 3 years ago

@ivanpovazon if you have a chance, please take a look as well.

@gregg-miskelly there is a minor typo in my name but no hard feelings :) I will check out all the changes tomorrow during the day Thanks!

gregg-miskelly commented 3 years ago

@ivanpovazon if you have a chance, please take a look as well.

@gregg-miskelly there is a minor typo in my name but no hard feelings :) I will check out all the changes tomorrow during the day Thanks!

Oops. Sorry about that! I fixed it in the PR description.

plnelson commented 3 years ago

👍 LGTM