Compiler Fehler!

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Compiler Fehler!

    Hallo,

    Ich habe folgendes Problem wenn ich folgendes Ausführen möchte!

    VB.NET-Quellcode

    1. ​Imports System.Windows.Forms
    2. Public Class MainClass
    3. Public Function ExecuteCode()
    4. Process.start("www.google.com")
    5. End Function
    6. End Class


    Dieser Code steht in einer Textdatei!

    Folgender Code wird benutzt um den oben stehenden Code auszuführen:

    VB.NET-Quellcode

    1. ​Sub Execute()
    2. ' Creates object of the compiler
    3. Dim objCodeCompiler As System.CodeDom.Compiler.ICodeCompiler = New VBCodeProvider().CreateCompiler
    4. 'References/Parameters.
    5. Dim objCompilerParameters As New System.CodeDom.Compiler.CompilerParameters()
    6. objCompilerParameters.ReferencedAssemblies.Add("System.dll")
    7. objCompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll")
    8. objCompilerParameters.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
    9. 'Compiles in memory.
    10. objCompilerParameters.GenerateInMemory = True
    11. 'Runs the source code.
    12. 'You can use resources, textbox's or even the settings, up to you! :D
    13. Dim strCode As String = codedat
    14. 'Compiler Results
    15. Dim objCompileResults As System.CodeDom.Compiler.CompilerResults = objCodeCompiler.CompileAssemblyFromSource(objCompilerParameters, strCode)
    16. 'If an Error occurs
    17. If objCompileResults.Errors.HasErrors Then
    18. MsgBox("Error: Line>" & objCompileResults.Errors(0).Line.ToString & ", " & objCompileResults.Errors(0).ErrorText)
    19. Exit Sub
    20. End If
    21. 'Creates assembly
    22. Dim objAssembly As System.Reflection.Assembly = objCompileResults.CompiledAssembly
    23. Dim objTheClass As Object = objAssembly.CreateInstance("MainClass")
    24. If objTheClass Is Nothing Then
    25. MsgBox("Can't load class...")
    26. Exit Sub
    27. End If
    28. 'Trys to excute
    29. Try
    30. objTheClass.GetType.InvokeMember("ExecuteCode",
    31. System.Reflection.BindingFlags.InvokeMethod, Nothing, objTheClass, Nothing)
    32. Catch ex As Exception
    33. MsgBox("Error:" & ex.Message)
    34. End Try
    35. End Sub


    Ich bekomme immer diese Errormeldung:

    Error:Line>1, labels are not valid outside methods/multiline lambdas.

    Bitte um hilfe :/
    Funktioniert der Code ohne

    oxDarkxo schrieb:

    VB.NET-Quellcode

    1. CodeDom
    :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @oxDarkxo

    RodFromGermany schrieb:

    Funktioniert der Code ohne
    CodeDom im selben Projekt wo ExecuteCode() steht?
    @ErfinderDesRades inverse Zuordnung.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    Was
    Du hast da ggf. den internen Code, der den CodeDom aufruft mit dem externen Code, der vom CodeDom compiliert wird, verwechselt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!