Halli Hallo,
hab jetzt leider ein größeres Problem.
Ich möchte eine art Builder für mein Server schreiben. Hab auch eine Function in VB.Net die eine .exe aus nem string generiert.
leider schaffe ich es aber nicht aus meinem gültigen vb.net code ne exe zu bekommen:
Code:
 Public Function Compile(ByVal v_Source As String) As System.CodeDom.Compiler.CompilerResults

        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 = True      'Assembly is created in memory

        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

        Try
            provider = New Microsoft.VisualBasic.VBCodeProvider
            compiler = provider.CreateCompiler
            results = compiler.CompileAssemblyFromSource(params, v_Source)
            Return results
        Catch ex As Exception
            'Compile errors don't throw exceptions; you've got some deeper problem...

            MessageBox.Show(ex.Message)
            Return Nothing
        End Try
    End Function


End Class
aber selbst an den "simpelsten" programm scheitere ich:
Code:
        strb = "Public Class Form1 " & vbNewLine
        strb &= "Public Shared Sub Main()" & vbNewLine
        strb &= "MessageBox.Show()" & vbNewLine
        strb &= "End Sub" & vbNewLine
        strb &= "End Class" & vbNewLine

        Debug.WriteLine(strb)

        Dim cr As System.CodeDom.Compiler.CompilerResults = Compile(strb)
--> Der Name MessageBox wurde nicht deklariert.
Muss ich irgendwie ne dll von visual basic.net einbinden?
wie funktioniert das mit labels etc? woher weis der compiler wo die liegen sollen?
bitte um hilfe :-/