Today the CLI deploys Roslyn as an MSBulid component by patching together a number of our components. This is a fragile solution because it means there needs to be a high degree of communication between ourselves an CLI when we make changes to this layout. Such changes are not uncommon during a release and elements like the compiler server depend on them existing.
Need to take an approach similar to how we deploy to MSBulid here. Have a NuGet package which contains the layout we expect and CLI can consume this by simply laying down the package contents into the appropriate directory.
Today the CLI deploys Roslyn as an MSBulid component by patching together a number of our components. This is a fragile solution because it means there needs to be a high degree of communication between ourselves an CLI when we make changes to this layout. Such changes are not uncommon during a release and elements like the compiler server depend on them existing.
Need to take an approach similar to how we deploy to MSBulid here. Have a NuGet package which contains the layout we expect and CLI can consume this by simply laying down the package contents into the appropriate directory.