VBCodeProvider (Clase)
Ensamblado: System (en system.dll)
Esta clase proporciona métodos que se pueden utilizar para recuperar instancias de las implementaciones de ICodeGenerator e ICodeCompiler de Visual Basic.
En el ejemplo siguiente se utiliza el proveedor de código C# o Visual Basic para compilar un archivo de código fuente. También se comprueba la extensión del archivo de entrada y se utiliza la clase CSharpCodeProvider o VBCodeProvider correspondiente para la compilación. El archivo de entrada se compila en un archivo ejecutable; todos los errores de compilación se muestran en la consola.
public static bool CompileExecutable(String sourceName) { FileInfo sourceFile = new FileInfo(sourceName); CodeDomProvider provider = null; bool compileOk = false; // Select the code provider based on the input file extension. if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".CS") { provider = new Microsoft.CSharp.CSharpCodeProvider(); } else if (sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) == ".VB") { provider = new Microsoft.VisualBasic.VBCodeProvider(); } else { Console.WriteLine("Source file must have a .cs or .vb extension"); } if (provider != null) { // Format the executable file name. // Build the output assembly path using the current directory // and <source>_cs.exe or <source>_vb.exe. String exeName = String.Format(@"{0}\{1}.exe", System.Environment.CurrentDirectory, sourceFile.Name.Replace(".", "_")); CompilerParameters cp = new CompilerParameters(); // Generate an executable instead of // a class library. cp.GenerateExecutable = true; // Specify the assembly file name to generate. cp.OutputAssembly = exeName; // Save the assembly as a physical file. cp.GenerateInMemory = false; // Set whether to treat all warnings as errors. cp.TreatWarningsAsErrors = false; // Invoke compilation of the source file. CompilerResults cr = provider.CompileAssemblyFromFile(cp, sourceName); if(cr.Errors.Count > 0) { // Display compilation errors. Console.WriteLine("Errors building {0} into {1}", sourceName, cr.PathToAssembly); foreach(CompilerError ce in cr.Errors) { Console.WriteLine(" {0}", ce.ToString()); Console.WriteLine(); } } else { // Display a successful compilation message. Console.WriteLine("Source {0} built into {1} successfully.", sourceName, cr.PathToAssembly); } // Return the results of the compilation. if (cr.Errors.Count > 0) { compileOk = false; } else { compileOk = true; } } return compileOk; }
- SecurityPermission para llamar a los miembros de la clase VBCodeProvider. Valor de la petición: LinkDemand; Conjuntos de permisos con nombre: FullTrust.
- SecurityPermission para derivar de la clase VBCodeProvider. Valor de la petición: InheritanceDemand; Conjuntos de permisos con nombre: FullTrust.
System.MarshalByRefObject
System.ComponentModel.Component
System.CodeDom.Compiler.CodeDomProvider
Microsoft.VisualBasic.VBCodeProvider
Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.