AddThis Social Bookmark Button
AddThis Feed Button
Bio
Mi avatar Blog de un pequeño informaticú y sus ocurrencias y pequeñas notas de ayuda.
IMGP9800
IMGP9799
IMGP9798
IMGP9797
IMGP9796
Categorias
links
03
Dic

Compilar codigo con .NET

(QR Code)

Un ejemplo de como compilar codigo fuente usando .NET

  1. Public Function CompileCommands() As String
  2. ' Creamos un compilador, en este caso para VB
  3. Dim compilador As System.CodeDom.Compiler.CodeDomProvider
  4. compilador = VBCodeProvider.CreateProvider("VB")
  5. 'Definimos parametros para compilar
  6. 'generar en memoria
  7. 'no generar ejecutable (hacer libreria)
  8. 'el nombre del ensamblado y de la clase principal
  9. Dim params As New System.CodeDom.Compiler.CompilerParameters()
  10. params.GenerateInMemory = True
  11. params.GenerateExecutable = False
  12. params.OutputAssembly = "commands.dll"
  13. params.MainClass = "command"
  14. params.IncludeDebugInformation = False
  15. ' añadimos las referencias que necesitemos
  16. params.ReferencedAssemblies.Add("referencias.exe")
  17. ' Añadimos los ensamblados del Dominio actual
  18. Dim ASM As System.Reflection.Assembly
  19. For Each ASM In AppDomain.CurrentDomain.GetAssemblies()
  20. params.ReferencedAssemblies.Add(ASM.Location)
  21. Next
  22. ' Compilamos, en este caso desde un archivo de codigo fuente,
  23. ' con los parametros establecidos anteriormente.
  24. ' Nos devuelve una clase con la informacion del resultado de la
  25. ' operacion
  26. Dim Results As System.CodeDom.Compiler.CompilerResults
  27. Results = compilador.CompileAssemblyFromFile(params, "commands.vb")
  28. ' Si hay errores creamos una cadena de texto para mostrarlos.
  29. If Results.Errors.Count > 0 Then
  30. Dim Err As System.CodeDom.Compiler.CompilerError
  31. Dim strerr As String = ""
  32. For Each Err In Results.Errors
  33. strerr = strerr & Err.ErrorNumber & ": [" & Err.Line & "] " & Err.ErrorText & vbCrLf
  34. Next
  35. Return strerr
  36. End If
  37. Return ""
  38. End Function


Nadie ha comentado (aun...)

No hay comentarios

Quieres dejar un comentario?