Como compilar o código-fonte de um aplicativo de console do VB.NET usando o VB.NET

Preciso criar uma função VB.NET que use o código fonte de um aplicativo de console do VB.NET e compile-o em umAplicação de consol.

Por exemplo, este é o código fonte do VB.NET para o aplicativo do console:

Module Module1

    Sub Main()
        Dim UserInfo As String = "Name: User1"

        System.Console.WriteLine(UserInfo)
        System.Console.ReadLine()
    End Sub

End Module

Meu código até agora:

Friend Function CreateConsoleApplication(ByVal VBSourceCode As String, ByVal WhereToSave As String) As Boolean
    Try
        'now compile the source code contained in 
        'VBSourceCode string variable

    Catch ex As Exception
        MessageBox.Show(ex.ToString)
        Return False
    End Try
End Function

ATUALIZAR Aqui está a solução: -

  Friend Function CreateConsoleApplication(ByVal VBSourceCode As String, ByVal WhereToSave As String) As Boolean
        Try

            VBSourceCode = "Module Module1" & vbCrLf & "Sub Main()" & vbCrLf & "Dim UserInfo As String = ""Name: User1""" & vbCrLf & "System.Console.WriteLine(UserInfo)" & vbCrLf & "System.Console.ReadLine()" & vbCrLf & "End Sub" & vbCrLf & "End Module"
            WhereToSave = "E:\TestConsole.exe"

            Dim provider As Microsoft.VisualBasic.VBCodeProvider
            Dim compiler As System.CodeDom.Compiler.ICodeCompiler
            Dim params As System.CodeDom.Compiler.CompilerParameters
            Dim results As System.CodeDom.Compiler.CompilerResults

            params = New System.CodeDom.Compiler.CompilerParameters
            params.GenerateInMemory = False

            params.TreatWarningsAsErrors = False
            params.WarningLevel = 4
            'Put any references you need here - even you own dll's, if you want to use one

            Dim refs() As String = {"System.dll", "Microsoft.VisualBasic.dll"}
            params.ReferencedAssemblies.AddRange(refs)
            params.GenerateExecutable = True
            params.OutputAssembly = WhereToSave

            provider = New Microsoft.VisualBasic.VBCodeProvider
            results = provider.CompileAssemblyFromSource(params, VBSourceCode)

            Return True
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
            Return False
        End Try
    End Function

Ok, agora o código pode compilar o código fonte do VB.NET no aplicativo de console do VB.NET, obrigado! Mas como verificamos se há algum erro nesteresults variável, quero dizer esta linha:results = provider.CompileAssemblyFromSource(params, VBSourceCode)

questionAnswers(1)

yourAnswerToTheQuestion