AddThis Feed Button
AddThis Social Bookmark Button
IMGP1165
IMGP1166
IMGP1143
IMGP1144
IMGP1145
IMGP1146
IMGP1147
IMGP1148
IMGP1149
IMGP1150
Categories

This Month Last Year

Julio 2008
L M X J V S D
« Jun «-»  
 123456
78910111213
14151617181920
21222324252627
28293031  
links
03
Dic

Compilar codigo con .NET

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