Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Nasıl yapılır: programsal olarak Visual Basic .NET veya Visual Basic 2005 Derleyicisi kullanarak kodu derleyin.

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:304654
Bu makalenin Microsoft Visual C# .NET sürümü için bkz: 304655.

Bu makalede, aşağıdaki Microsoft .NET Framework Sınıf Kitaplığı ad alanına başvurulmaktadır:
  • System.CodeDom.Compiler
Özet
.NET Framework, sınıflar programlama, Visual Basic .NET veya Visual Basic 2005 Dil Derleyici erişmenize olanak sağlar. Bu da kendi Kod derleniyor yardımcı programları yazmak istediğiniz durumlarda yararlı olabilir. Bu makalede, bir <a0>metin</a0> kaynaktan kodunu derlemek olanak tanıyan bir örnek kodu sağlanır. Uygulama ya da yalnızca yürütülebilir dosyayı veya yürütülebilir dosyayı oluşturmak ve onu sağlar. Derleme işlemi sırasında oluşan hataları, formda görüntülenir.
Daha fazla bilgi

1. Adım: gereksinimleri

  • Visual Studio .NET veya Visual Studio 2005
  • Visual Basic .NET dil derleyici veya Visual Basic 2005 dil derleyicisi

2. Adım: Nasıl programsal olarak kodu derle

.NET Framework ICodeCompiler derleyici yürütme arabirimi sağlar. VBCodeProvider sınıfı, bu arabirimi uygulayan ve Visual Basic kod üreticisi ve kod derleyici erişim sağlar. Aşağıdaki örnek, VBCodeProvider bir kopyasýný oluþturur ve ICodeCompiler bir arabirime başvuru almak için kullanır.

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

Bir başvuru ICodeCompiler arabirim sonra kaynak kodunu derlemek için kullanabilirsiniz. Parametreleri için derleyici CompilerParameters sınıfı'nı kullanarak geçirin. Işte bir örnek:
Dim parameters As New CompilerParameters()Dim results As CompilerResultsparameters.GenerateExecutable = Trueparameters.OutputAssembly = Outputresults = icc.CompileAssemblyFromSource(parameters, SourceText)				

Yukarıdaki kod CompilerParameters nesne derleyici yürütülebilir bir dosya (karşıt olarak bir DLL) oluşturmak istediğiniz disk ortaya çıkan bir derlemeye çıkış istediğiniz ve söylemek için kullanır. CompileAssemblyFromSource çağrısı, derleme derlenmiş ' dir. Bu yöntem parametreleri nesneniz ve kaynak kodu, bir dize alır. Kod derleme sonra herhangi bir derleme hatalarıyla karşılaşıldığını denetleyebilirsiniz. CompilerResults nesnesi olan CompileAssemblyFromSource, gelen bir dönüş değeri kullanıyoruz. Bu nesne sırasında derleme oluşan hatalar içeren bir hata koleksiyonu içerir.
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				

Derleme, bir dosyadan derleme gibi diğer seçenekleri de vardır. Ayrıca, başka bir deyişle aynı anda birden fazla dosya veya kaynakları derleyebilirsiniz derleme toplu. Bu sınıflar hakkında ek bilgi MSDN Online sitesindeki kullanılabilir:

3. Adım: Adım adım örnek

  1. Yeni bir Visual Basic .NET veya Visual Basic 2005 Windows uygulaması oluşturun. Varsayılan olarak, Form1 oluşturulur.
  2. Varolan metnin tümünü Form1 <a1>Kod Görüntüle</a1> penceresinde aşağıdaki kodla değiştirin:
    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					
    Not kodunu Visual Basic 2005'te değiştirilmelidir. Visual Basic 2005 Form1 adlı yeni bir form oluşturursanız, kodunuz için Form1.vb dosya ve otomatik olarak oluşturulan bölümü içeren Form1.Designer.vb dosyası vardır. Windows Forms Designer kısmi anahtar Form1 uygulamasının iki ayrı dosyaya bölmek için kullanır. Bu, Tasarımcı verilen kod kodunuzu interspersed engeller. Visual Basic 2005 dil geliştirmeleri hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin: Kısmi sınıfları ve Windows Forms Tasarımcısı hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
  3. Projeyi çalıştırın. Form1'ı yüklendikten sonra düğmesini tıklatın. Derleyici hatalarını birkaç aldığınız dikkat edin.
  4. Daha da herhangi bir varolan metnin yerine metin kutusu, aşağıdaki kodu kopyalayın:
    Imports SystemModule Module1    Sub Main()        Console.WriteLine("Hello World!")        Console.WriteLine("Press ENTER")        Console.ReadLine()    End SubEnd Module					
  5. Oluşturma, yeniden tıklatın. Derleme başarılı olması gerekir.
  6. Çalıştır ' ı tıklatın ve kodunu derlemek ve elde edilen yürütülebilir dosyayı çalıştırmak. Derleme, çalıştırmakta olduğunuz uygulama ile aynı klasörde "Out.exe" adlı bir yürütülebilir dosya oluşturur.

    Not: Farklı bir derleyici hatalarını görmek için metin kutusunu kodu değiştirebilirsiniz. Örneğin, parantez birini silin ve kodun yeniden.
  7. Son olarak, metin, metin konsol penceresi için bir satır çıkış kodu değiştirebilirsiniz. Çıktı görmek için Çalıştır ' ı tıklatın.
ICodeCompiler CSharpCodeProvider CompilerParameters

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 304654 - Son İnceleme: 05/11/2007 07:08:50 - Düzeltme: 4.7

Microsoft .NET Framework 1.0, Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbmt kbvs2005applies kbvs2005swept kbbcl kbcompiler kbhowto kbprod2web KB304654 KbMttr
Geri bildirim
lay:none;" onerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">