Je bent nu offline; er wordt gewacht tot er weer een internetverbinding is

Informatie over het programmatisch code compileren met behulp van Visual Basic.NET of Visual Basic 2005-compiler

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

304654
Voor een Microsoft Visual c#.Net werk versie van dit artikel, Zie304655.

In dit artikel wordt verwezen naar de volgende Microsoft.NET Framework Class Library-naamruimte:
  • System.CodeDom.compiler
Samenvatting
Het.NET Framework bevat klassen waarmee u via programmering toegang krijgen tot het Visual Basic.NET of Visual Basic 2005 language compiler. Dit kan ook handig zijn als u wilt uw eigen programma's compileren van code schrijven. Dit artikel bevat voorbeeldcode waarmee u te compileren code uit een tekst bron. De toepassing kunt u alleen het uitvoerbaar bestand bouwen of bouwen het uitvoerbare bestand en voer het uit. Fouten die tijdens het compileren optreden op het formulier worden weer gegeven.
Meer informatie

Stap 1: vereisten

  • Visual Studio.NET of Visual Studio 2005
  • In Visual Basic.NETTO Language Compiler of Visual Basic 2005 Language Compiler

Stap 2: Het programma Code compileren

Het..NET Framework biedt de compiler uitvoering ICodeCompiler interface. VBCodeProvider klasse implementeert deze interface en biedt toegang tot exemplaren van de Visual Basic-code generator en code compilatie. Het volgende voorbeeld maakt een instantie van de VBCodeProvider en wordt gebruikt om een verwijzing naar een ICodeCompiler interface.

Dim codeProvider As New VBCodeProvider()Dim icc As ICodeCompiler = codeProvider.CreateCompiler				

Nadat u een verwijzing naar een ICodeCompiler interface hebt, kunt u gebruiken voor het compileren van de broncode. U doorgeven parameters aan de compiler door met behulp van deCompilerParametersklasse. Hier volgt een voorbeeld:
Dim parameters As New CompilerParameters()Dim results As CompilerResultsparameters.GenerateExecutable = Trueparameters.OutputAssembly = Outputresults = icc.CompileAssemblyFromSource(parameters, SourceText)				

De bovenstaande code wordt het object CompilerParameters gebruikt om de compiler die u wilt genereren een uitvoerbaar bestand (in tegenstelling tot een DLL-bestand) en u wilt de resulterende assembly op schijf uitvoer. De aanroepCompileAssemblyFromSourceis waar de assembly wordt gecompileerd. Deze methode heeft de parameters object en de broncode, een teken reeks. Zodra u uw u controleren kunt om te zien of er compilatie fouten code. We gebruiken de retour waarde vanCompileAssemblyFromSource, die eenCompilerResultsobject. Dit object bevat een collectie errors, waarin eventuele fouten die tijdens het compileren.
If results.Errors.Count > 0 Then   'There were compiler errors   Dim CompErr As CompilerError   For Each CompErr In results.Errors      textBox2.Text = textBox2.Text & _                      "Line number " & CompErr.Line & _                      ", Error Number: " & CompErr.ErrorNumber & _                      ", '" & CompErr.ErrorText & ";" & _      Environment.NewLine & Environment.NewLine   NextEnd If				

Er zijn andere opties voor het compileren, zoals de opstelling van een bestand. U kunt ook compileren, wat betekent dat u meerdere bestanden kunt compileren batch of bronnen tegelijk. Meer informatie over deze klassen op MSDN Online:

Stap 3: Stapsgewijs voorbeeld

  1. Maak een nieuwe Visual Basic.NET of Visual Basic 2005 Windows-toepassing. Formulier1 Standaard wordt gemaakt.
  2. Vervang alle in de codeweergave venster van Formulier1, het bestaande tekst met de volgende code:
    Option Strict OnImports System.CodeDom.CompilerPublic Class Form1    Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code "    Public Sub New()        MyBase.New()        'This call is required by the Windows Form Designer.        InitializeComponent()        'Add any initialization after the InitializeComponent() call    End Sub    'Form overrides dispose to clean up the component list.    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)        If disposing Then            If Not (components Is Nothing) Then                components.Dispose()            End If        End If        MyBase.Dispose(disposing)    End Sub    Friend WithEvents textBox1 As System.Windows.Forms.TextBox    Friend WithEvents button1 As System.Windows.Forms.Button    Friend WithEvents textBox2 As System.Windows.Forms.TextBox    Friend WithEvents button2 As System.Windows.Forms.Button    'Required by the Windows Form Designer    Private components As System.ComponentModel.Container    'NOTE: The following procedure is required by the Windows Form Designer    'It can be modified using the Windows Form Designer.      'Do not modify it using the code editor.    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()        Me.textBox2 = New System.Windows.Forms.TextBox()        Me.textBox1 = New System.Windows.Forms.TextBox()        Me.button1 = New System.Windows.Forms.Button()        Me.button2 = New System.Windows.Forms.Button()        Me.SuspendLayout()        '        'textBox2        '        Me.textBox2.BackColor = System.Drawing.SystemColors.Control        Me.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None        Me.textBox2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))        Me.textBox2.ForeColor = System.Drawing.SystemColors.WindowText        Me.textBox2.Location = New System.Drawing.Point(264, 56)        Me.textBox2.Multiline = True        Me.textBox2.Name = "textBox2"        Me.textBox2.Size = New System.Drawing.Size(240, 232)        Me.textBox2.TabIndex = 2        Me.textBox2.Text = ""        '        'textBox1        '        Me.textBox1.Location = New System.Drawing.Point(16, 48)        Me.textBox1.Multiline = True        Me.textBox1.Name = "textBox1"        Me.textBox1.Size = New System.Drawing.Size(240, 240)        Me.textBox1.TabIndex = 0        Me.textBox1.Text = "textBox1"        '        'button1        '        Me.button1.Location = New System.Drawing.Point(368, 304)        Me.button1.Name = "button1"        Me.button1.TabIndex = 1        Me.button1.Text = "Build"        '        'button2        '        Me.button2.Location = New System.Drawing.Point(456, 304)        Me.button2.Name = "button2"        Me.button2.TabIndex = 1        Me.button2.Text = "Run"        '        'Form1        '        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)        Me.ClientSize = New System.Drawing.Size(544, 333)        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button2, Me.textBox1, Me.button1, Me.textBox2})        Me.Name = "Form1"        Me.Text = "Form1"        Me.ResumeLayout(False)    End Sub#End Region    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click, button2.Click        Dim codeProvider As New VBCodeProvider()        Dim icc As ICodeCompiler = codeProvider.CreateCompiler        Dim Output As String = "Out.exe"        Dim ButtonObject As Button = CType(sender, Button)        textBox2.Text = ""        Dim parameters As New CompilerParameters()        Dim results As CompilerResults        'Make sure we generate an EXE, not a DLL        parameters.GenerateExecutable = True        parameters.OutputAssembly = Output        results = icc.CompileAssemblyFromSource(parameters, textBox1.Text)        If results.Errors.Count > 0 Then            'There were compiler errors            textBox2.ForeColor = Color.Red            Dim CompErr As CompilerError            For Each CompErr In results.Errors                textBox2.Text = textBox2.Text & _                "Line number " & CompErr.Line & _                ", Error Number: " & CompErr.ErrorNumber & _                ", '" & CompErr.ErrorText & ";" & _                Environment.NewLine & Environment.NewLine            Next        Else            'Successful Compile            textBox2.ForeColor = Color.Blue            textBox2.Text = "Success!"            'If we clicked run then launch the EXE            If ButtonObject.Text = "Run" Then Process.Start(Output)        End If    End SubEnd Class					
    OpmerkingDe code moet worden gewijzigd in Visual Basic 2005. Als u een nieuw formulier met de naam Form1 in Visual Basic 2005 maakt, hebt u een Form1. vb-bestand voor uw code en een Form1.Designer.vb bestand dat de automatisch gegenereerde onderdeel bevat. De Windows Forms Designer de gedeeltelijke tref woord wordt gebruikt om de uitvoering van Form1 opsplitsen in twee afzonderlijke bestanden. Dit voorkomt dat de code designer uitgestoten wordt afgewisseld met uw code. Ga naar de volgende Microsoft-website voor meer informatie over de verbeteringen van de taal Visual Basic 2005:Ga naar de volgende Microsoft-website voor meer informatie over gedeeltelijke klassen en de Windows Forms Designer:
  3. Het project wordt uitgevoerd. Nadat Formulier1 is geladen, klikt u op deBuildknop. U ziet dat u een aantal compiler krijgt fouten.
  4. Kopieer de volgende code in het tekstvak vervangen bestaande tekst:
    Imports SystemModule Module1    Sub Main()        Console.WriteLine("Hello World!")        Console.WriteLine("Press ENTER")        Console.ReadLine()    End SubEnd Module					
  5. Klik opBuildopnieuw. De compilatie moet werken.
  6. Klik opUitvoerenen wordt de code te compileren en uitvoeren van het exe-bestand bestand. Het compileren maakt een uitvoerbaar bestand met de naam "Out.exe" in dezelfde map Als de toepassing waarmee u werkt.

    OPMERKING:U kunt de code in het tekstvak om te zien andere compiler wijzigen fouten. Verwijder bijvoorbeeld een van de haakjes en het opnieuw opbouwen van de code.
  7. Tenslotte de code in het tekstvak een andere uitvoer wijzigen regel tekst naar het consolevenster. Klik opUitvoerenvoor de uitvoer.
ICodeCompiler CSharpCodeProvider CompilerParameters

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 304654 - Laatst bijgewerkt: 02/28/2011 04:19:00 - Revisie: 2.0

  • Microsoft .NET Framework 1.0
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbvs2005applies kbvs2005swept kbbcl kbcompiler kbhowto kbprod2web kbmt KB304654 KbMtnl
Feedback