Как отладить код, скомпилированный с Roslyn в расширении Visual Studio внутри текущего хоста Visual Studio?

У меня есть расширения Visual Studio, которые используют Roslyn, чтобы получить проект в текущем открытом решении, скомпилировать его и запустить из него методы. Проект может быть изменен программистом.

Я успешно скомпилировал проект в расширении Visual Studio из текущего VisualStudioWorkspace.

    private static Assembly CompileAndLoad(Compilation compilation)
    {
        using (MemoryStream dllStream = new MemoryStream())
        using (MemoryStream pdbStream = new MemoryStream())
        {
            EmitResult result = compilation.Emit(dllStream, pdbStream);

            if (!result.Success)
            {
                IEnumerable<Diagnostic> failures = result.Diagnostics.Where(diagnostic =>
                    diagnostic.IsWarningAsError ||
                    diagnostic.Severity == DiagnosticSeverity.Error);

                string failuresException = "Failed to compile code generation project : \r\n";

                foreach (Diagnostic diagnostic in failures)
                {
                    failuresException += $"{diagnostic.Id} : {diagnostic.GetMessage()}\r\n";
                }

                throw new Exception(failuresException);
            }
            else
            {

                dllStream.Seek(0, SeekOrigin.Begin);
                return AppDomain.CurrentDomain.Load(dllStream.ToArray(), pdbStream.ToArray());

            }
        }
    }

Затем я могу загрузить сборку в текущем домене, получить ее типы и вызвать методы.

Проблема в том, что мне нужно разрешить программисту устанавливать точки останова, если текущая конфигурация загруженного решения отлажена.

Мне нужно запустить некоторый код в текущем хосте Visual Studio из расширения и разрешить его отладку в текущем экземпляре Visual Studio.

Ответы на вопрос(2)

Ваш ответ на вопрос