온라인으로 많은 연구를 한 끝에 다음과 같은 결론을 내 렸습니다. 이 주제에 대한 의견을 보내 주신 모든 분들께 감사드립니다.
먼저 새 프로젝트를 열고 버튼에 다음 코드를 추가하십시오. 이 코드는 다음 단계에서 만들 텍스트 파일에 작성한 코드를 컴파일합니다.
Private Sub CompilerButton_Click(sender As System.Object, e As System.EventArgs) Handles CompilerButton.Click
Dim objCodeCompiler As System.CodeDom.Compiler.ICodeCompiler = New VBCodeProvider().CreateCompiler() ' We create object of the compiler
Dim objCompilerParameters As New System.CodeDom.Compiler.CompilerParameters()
' Add reference
objCompilerParameters.ReferencedAssemblies.Add("System.dll")
objCompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll")
objCompilerParameters.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
'Compile in memory
Dim Output1 As String = "OutputApp"
objCompilerParameters.GenerateExecutable = True
objCompilerParameters.OutputAssembly = Output1
objCompilerParameters.CompilerOptions = "/target:winexe"
Dim strCode As String = My.Resources.TextFile1.ToString
Dim objCompileResults As System.CodeDom.Compiler.CompilerResults = _
objCodeCompiler.CompileAssemblyFromSource(objCompilerParameters, strCode)
If objCompileResults.Errors.HasErrors Then
' If an error occurs
MsgBox("Error: Line>" & objCompileResults.Errors(0).Line.ToString & ", " & _
objCompileResults.Errors(0).ErrorText)
Exit Sub
End If
End Sub
그런 다음 프로젝트 리소스에서 텍스트 파일을 추가하고 다음 코드를 추가하십시오. 이 코드는 독립 실행 형 EXE로 컴파일하려는 응용 프로그램입니다. 그리고 원하는 방식으로 변경할 수 있습니다. 당신이 이름 OutputApp에서 프로젝트 \ 빈 \ 디버그에서 독립 EXE를 만들어야합니다 컴파일을 클릭 한 후, 위의 모든 것을 수행 한 경우
Option Strict On
Imports System
Imports System.Windows.Forms
Imports System.Windows.Forms.Form
Imports Microsoft.VisualBasic
Namespace MyApp
Public Class EntryPoint
Public Shared Sub Main(args As [String]())
Dim FrmMain As New Form1
System.Windows.Forms.Application.Run(FrmMain)
End Sub
End Class
Public Class Form1
Inherits System.Windows.Forms.Form
Private WithEvents Button1 As New Button
Sub New()
Application.EnableVisualStyles()
Me.Text = "Form1"
Button1.Text = "Click Me!"
Button1.Top = 100
Button1.Left = 100
Me.Controls.Add(Button1)
End Sub
Private Sub Button1_Click(Sender As Object, E As EventArgs) Handles Button1.Click
MsgBox("You Clicked Me!")
End Sub
End Class
End Namespace
.
다시 한 번 모두에게 감사드립니다. 위의 코드가 같은 것을하기 위해 노력하는 사람에게 유용 할 것입니다.
이유는 무엇입니까? – shanabus
메모장이 아닌 비주얼 스튜디오 Visual Basic Express 2010을 사용하고 싶을 수도 있습니다. http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-basic-express – mellodev
@shanabus, CodeDom이 내 응용 프로그램 내에서 코드를 컴파일하는 방법을 모르는 것 같습니다. , 메모장 일을 대안으로 생각했습니다. – NetInfo