.NET에서 제공하는 컴파일 서비스를 이요하면 C#이나 VB.NET코드등을 동적으로 컴파일해서 .exe나 .dll등을 빌드할수 있다.
using System;
using System.CodeDom.Compiler;
using System.Diagnostics;
namespace CSCompile
{
class Program
{
static void Main(string[] args)
{
// 컴파일할 코드
string code = @"
using System;
namespace TEST
{
class Program
{
static void Main(string[] args)
{
int sum = 0;
for (int i = 0; i < 100; i++)
{
sum += i;
}
Console.WriteLine(sum);
Console.ReadLine();
}
}
}
";
// C# 컴파일러 객체 생성
CodeDomProvider codeDom = CodeDomProvider.CreateProvider("CSharp");
// 컴파일러 파라미터 옵션 지정
CompilerParameters cparams = new CompilerParameters();
cparams.GenerateExecutable = true;
cparams.OutputAssembly = "Test.exe";
// 소스코드를 컴파일해서 EXE 생성
CompilerResults results = codeDom.CompileAssemblyFromSource(cparams, code);
// 컴파일 에러 있는 경우 표시
if (results.Errors.Count > 0)
{
foreach (var err in results.Errors)
{
Console.WriteLine(err.ToString());
}
return;
}
// (Optional) 테스트 실행
Process.Start("Test.exe");
}
}
}
[Factory Method Pattern] 팩토리 메서드 패턴 C# (0) | 2023.07.25 |
---|---|
[C#] 프로그램 중복실행 방지 ( 단일 프로세스만 실행하기 ) (0) | 2023.07.18 |
.NET Serialization 닷넷 객체직렬화 (0) | 2023.07.18 |
[C#] Nullable<T> (0) | 2023.07.18 |
[C#] Interface로 구현한 폼 간 값전달 (0) | 2023.07.18 |